@castlabs/ui 7.23.0 → 7.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/castlabs-ui.common.js +2 -2
- package/dist/castlabs-ui.common.js.map +1 -1
- package/dist/castlabs-ui.core.js +41 -19
- package/dist/castlabs-ui.css +1 -1
- package/dist/castlabs-ui.module.d.ts +3 -3
- package/dist/castlabs-ui.module.js +41 -19
- package/dist/castlabs-ui.umd.js +3 -3
- package/dist/castlabs-ui.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/text/ClCopy/style.scss +1 -3
- package/src/styles/layout/helper.scss +4 -3
- package/src/styles/layout/meta.scss +1 -1
- package/types/castlabs-ui.module.d.ts +3 -3
- package/types/index.d.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"castlabs-ui.umd.js","names":["Symbol","nativeObjectToString","symToStringTag","Symbol","Symbol","FUNC_ERROR_TEXT","canUseDOM","getOptions","addClasses","bootstrap","bootstrap"],"sources":["../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/simplebar-core/dist/index.mjs","../node_modules/simplebar/dist/index.mjs","../src/components/ClUI.vue","../src/components/ClUI.vue","../src/components/ClAlert/template.vue","../src/components/ClAlert/template.vue","../src/components/ClAlert/index.ts","../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js","../src/utils/ui.js","../src/utils/vue.js","../src/components/widget/ClBackCancelOk/template.vue","../src/components/widget/ClBackCancelOk/template.vue","../src/components/widget/ClBackCancelOk/index.ts","../src/components/widget/ClCookieBanner/template.vue","../src/components/widget/ClCookieBanner/template.vue","../src/components/widget/ClCookieBanner/index.ts","../src/components/text/ClCopy/template.vue","../src/components/text/ClCopy/template.vue","../src/components/text/ClCopy/index.ts","../src/components/text/ClCreditcardNumber/template.vue","../src/components/text/ClCreditcardNumber/template.vue","../src/components/text/ClCreditcardNumber/index.ts","../src/components/ClDropzone/template.vue","../src/components/ClDropzone/template.vue","../src/components/ClDropzone/index.ts","../src/components/form/ClField/template.vue","../src/components/form/ClField/template.vue","../src/components/form/ClField/index.ts","../src/components/form/ClFieldCheck/template.vue","../src/components/form/ClFieldCheck/template.vue","../src/components/form/ClFieldCheck/index.ts","../src/components/form/ClFieldGroup/template.vue","../src/components/form/ClFieldGroup/template.vue","../src/components/form/ClFieldGroup/index.ts","../src/components/text/ClHashtag/template.vue","../src/components/text/ClHashtag/template.vue","../src/components/text/ClHashtag/index.ts","../src/components/ClIconotron/template.vue","../src/components/ClIconotron/template.vue","../src/components/ClIconotron/index.ts","../src/components/ClInfo/template.vue","../src/components/ClInfo/template.vue","../src/components/ClInfo/index.ts","../src/components/text/ClLinkExternal/template.vue","../src/components/text/ClLinkExternal/template.vue","../src/components/text/ClLinkExternal/index.ts","../src/components/ClLorem/template.vue","../src/components/ClLorem/template.vue","../src/components/ClLorem/index.ts","../src/components/text/ClMailto/template.vue","../src/components/text/ClMailto/template.vue","../src/components/text/ClMailto/index.ts","../src/components/test/ClMockRouterLink/template.vue","../src/components/test/ClMockRouterLink/template.vue","../src/components/test/ClMockRouterLink/index.ts","../src/components/modal/ClModal/template.vue","../src/components/modal/ClModal/template.vue","../src/components/modal/ClModal/index.ts","../src/components/modal/ClModalConfirm/template.vue","../src/components/modal/ClModalConfirm/template.vue","../src/components/modal/ClModalConfirm/index.ts","../src/components/modal/ClModalForm/template.vue","../src/components/modal/ClModalForm/template.vue","../src/components/modal/ClModalForm/index.ts","../src/components/modal/ClModalOk/template.vue","../src/components/modal/ClModalOk/template.vue","../src/components/modal/ClModalOk/index.ts","../src/components/navigation/ClNavSide/ClNavItemDarkMode/template.vue","../src/components/navigation/ClNavSide/ClNavItemDarkMode/template.vue","../src/components/navigation/ClNavSide/ClNavItemDarkMode/index.ts","../src/components/navigation/ClNavSide/Side.js","../src/components/navigation/ClNavSide/template.vue","../src/components/navigation/ClNavSide/template.vue","../src/components/navigation/ClNavSide/index.ts","../src/components/navigation/ClNavTop/template.vue","../src/components/navigation/ClNavTop/template.vue","../src/components/navigation/ClNavTop/index.ts","../src/components/text/ClOrg/template.vue","../src/components/text/ClOrg/template.vue","../src/components/text/ClOrg/index.ts","../src/components/widget/ClPage/template.vue","../src/components/widget/ClPage/template.vue","../src/components/widget/ClPage/index.ts","../src/components/ClPagination/template.vue","../src/components/ClPagination/template.vue","../src/components/ClPagination/index.ts","../src/components/text/ClPlan/template.vue","../src/components/text/ClPlan/template.vue","../src/components/text/ClPlan/index.ts","../src/components/text/ClRole/template.vue","../src/components/text/ClRole/template.vue","../src/components/text/ClRole/index.ts","../src/components/section/ClSectionDetails/template.vue","../src/components/section/ClSectionDetails/template.vue","../src/components/section/ClSectionDetails/index.ts","../src/components/section/ClSectionForm/template.vue","../src/components/section/ClSectionForm/template.vue","../src/components/section/ClSectionForm/index.ts","../src/components/section/ClSectionHeadline/template.vue","../src/components/section/ClSectionHeadline/template.vue","../src/components/section/ClSectionHeadline/index.ts","../src/components/section/ClSectionMain/template.vue","../src/components/section/ClSectionMain/template.vue","../src/components/section/ClSectionMain/index.ts","../src/components/section/ClSectionMainSide/template.vue","../src/components/section/ClSectionMainSide/template.vue","../src/components/section/ClSectionMainSide/index.ts","../src/components/ClSpinner/template.vue","../src/components/ClSpinner/template.vue","../src/components/ClSpinner/index.ts","../src/components/table/ClTable/Table.js","../src/components/table/ClTable/template.vue","../src/components/table/ClTable/template.vue","../src/components/table/ClTable/index.ts","../src/components/table/ClTableCel/template.vue","../src/components/table/ClTableCel/template.vue","../src/components/table/ClTableCel/index.ts","../src/components/table/ClTableCel/Actions/template.vue","../src/components/table/ClTableCel/Actions/template.vue","../src/components/table/ClTableCel/Actions/index.ts","../src/components/table/ClTableCel/Audit/template.vue","../src/components/table/ClTableCel/Audit/template.vue","../src/components/table/ClTableCel/Audit/index.ts","../src/components/table/ClTableCel/Boolean/template.vue","../src/components/table/ClTableCel/Boolean/template.vue","../src/components/table/ClTableCel/Boolean/index.ts","../src/components/table/ClTableCel/Checkbox/template.vue","../src/components/table/ClTableCel/Checkbox/template.vue","../src/components/table/ClTableCel/Checkbox/index.ts","../src/components/table/ClTableCel/Code/template.vue","../src/components/table/ClTableCel/Code/template.vue","../src/components/table/ClTableCel/Code/index.ts","../src/components/table/ClTableCel/Currency/template.vue","../src/components/table/ClTableCel/Currency/template.vue","../src/components/table/ClTableCel/Currency/index.ts","../src/components/table/ClTableCel/Date/template.vue","../src/components/table/ClTableCel/Date/template.vue","../src/components/table/ClTableCel/Date/index.ts","../src/components/table/ClTableCel/ID/template.vue","../src/components/table/ClTableCel/ID/template.vue","../src/components/table/ClTableCel/ID/index.ts","../src/components/table/ClTableCel/Links/template.vue","../src/components/table/ClTableCel/Links/template.vue","../src/components/table/ClTableCel/Links/index.ts","../src/components/table/ClTableCel/Time/template.vue","../src/components/table/ClTableCel/Time/template.vue","../src/components/table/ClTableCel/Time/index.ts","../src/components/table/ClTableCel/UUID/template.vue","../src/components/table/ClTableCel/UUID/template.vue","../src/components/table/ClTableCel/UUID/index.ts","../src/components/table/ClTableFootChecked/template.vue","../src/components/table/ClTableFootChecked/template.vue","../src/components/table/ClTableFootChecked/index.ts","../src/components/table/ClTableHead/template.vue","../src/components/table/ClTableHead/template.vue","../src/components/table/ClTableHead/index.ts","../src/components/table/ClTableRow/template.vue","../src/components/table/ClTableRow/template.vue","../src/components/table/ClTableRow/index.ts","../src/components/ClTabs/template.vue","../src/components/ClTabs/template.vue","../src/components/ClTabs/index.ts","../src/components/ClToggle/template.vue","../src/components/ClToggle/template.vue","../src/components/ClToggle/index.ts","../src/utils/const.js","../src/utils/cs.js","../src/utils/nav.js","../src/utils/search.js","../plugins/uid/index.js","../src/utils/test.ts","../src/index.ts"],"sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * simplebar-core - v1.3.2\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport debounce from 'lodash-es/debounce.js';\nimport throttle from 'lodash-es/throttle.js';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nfunction getElementWindow$1(element) {\n if (!element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView) {\n return window;\n }\n return element.ownerDocument.defaultView;\n}\nfunction getElementDocument$1(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n return element.ownerDocument;\n}\n// Helper function to retrieve options from element attributes\nvar getOptions$1 = function (obj) {\n var initialObj = {};\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (_, chr) { return chr.toUpperCase(); });\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n }, initialObj);\n return options;\n};\nfunction addClasses$1(el, classes) {\n var _a;\n if (!el)\n return;\n (_a = el.classList).add.apply(_a, classes.split(' '));\n}\nfunction removeClasses$1(el, classes) {\n if (!el)\n return;\n classes.split(' ').forEach(function (className) {\n el.classList.remove(className);\n });\n}\nfunction classNamesToQuery$1(classNames) {\n return \".\".concat(classNames.split(' ').join('.'));\n}\nvar canUseDOM = !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addClasses: addClasses$1,\n canUseDOM: canUseDOM,\n classNamesToQuery: classNamesToQuery$1,\n getElementDocument: getElementDocument$1,\n getElementWindow: getElementWindow$1,\n getOptions: getOptions$1,\n removeClasses: removeClasses$1\n});\n\nvar cachedScrollbarWidth = null;\nvar cachedDevicePixelRatio = null;\nif (canUseDOM) {\n window.addEventListener('resize', function () {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null) {\n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n var body = document.body;\n var box = document.createElement('div');\n box.classList.add('simplebar-hide-scrollbar');\n body.appendChild(box);\n var width = box.getBoundingClientRect().right;\n body.removeChild(box);\n cachedScrollbarWidth = width;\n }\n return cachedScrollbarWidth;\n}\n\nvar getElementWindow = getElementWindow$1, getElementDocument = getElementDocument$1, getOptions = getOptions$1, addClasses = addClasses$1, removeClasses = removeClasses$1, classNamesToQuery = classNamesToQuery$1;\nvar SimpleBarCore = /** @class */ (function () {\n function SimpleBarCore(element, options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.removePreventClickId = null;\n this.minScrollbarWidth = 20;\n this.stopScrollDelay = 175;\n this.isScrolling = false;\n this.isMouseEntering = false;\n this.isDragging = false;\n this.scrollXTicking = false;\n this.scrollYTicking = false;\n this.wrapperEl = null;\n this.contentWrapperEl = null;\n this.contentEl = null;\n this.offsetEl = null;\n this.maskEl = null;\n this.placeholderEl = null;\n this.heightAutoObserverWrapperEl = null;\n this.heightAutoObserverEl = null;\n this.rtlHelpers = null;\n this.scrollbarWidth = 0;\n this.resizeObserver = null;\n this.mutationObserver = null;\n this.elStyles = null;\n this.isRtl = null;\n this.mouseX = 0;\n this.mouseY = 0;\n this.onMouseMove = function () { };\n this.onWindowResize = function () { };\n this.onStopScrolling = function () { };\n this.onMouseEntered = function () { };\n /**\n * On scroll event handling\n */\n this.onScroll = function () {\n var elWindow = getElementWindow(_this.el);\n if (!_this.scrollXTicking) {\n elWindow.requestAnimationFrame(_this.scrollX);\n _this.scrollXTicking = true;\n }\n if (!_this.scrollYTicking) {\n elWindow.requestAnimationFrame(_this.scrollY);\n _this.scrollYTicking = true;\n }\n if (!_this.isScrolling) {\n _this.isScrolling = true;\n addClasses(_this.el, _this.classNames.scrolling);\n }\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.onStopScrolling();\n };\n this.scrollX = function () {\n if (_this.axis.x.isOverflowing) {\n _this.positionScrollbar('x');\n }\n _this.scrollXTicking = false;\n };\n this.scrollY = function () {\n if (_this.axis.y.isOverflowing) {\n _this.positionScrollbar('y');\n }\n _this.scrollYTicking = false;\n };\n this._onStopScrolling = function () {\n removeClasses(_this.el, _this.classNames.scrolling);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isScrolling = false;\n };\n this.onMouseEnter = function () {\n if (!_this.isMouseEntering) {\n addClasses(_this.el, _this.classNames.mouseEntered);\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.isMouseEntering = true;\n }\n _this.onMouseEntered();\n };\n this._onMouseEntered = function () {\n removeClasses(_this.el, _this.classNames.mouseEntered);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isMouseEntering = false;\n };\n this._onMouseMove = function (e) {\n _this.mouseX = e.clientX;\n _this.mouseY = e.clientY;\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseMoveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseMoveForAxis('y');\n }\n };\n this.onMouseLeave = function () {\n _this.onMouseMove.cancel();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseLeaveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseLeaveForAxis('y');\n }\n _this.mouseX = -1;\n _this.mouseY = -1;\n };\n this._onWindowResize = function () {\n // Recalculate scrollbarWidth in case it's a zoom\n _this.scrollbarWidth = _this.getScrollbarWidth();\n _this.hideNativeScrollbar();\n };\n this.onPointerEvent = function (e) {\n if (!_this.axis.x.track.el ||\n !_this.axis.y.track.el ||\n !_this.axis.x.scrollbar.el ||\n !_this.axis.y.scrollbar.el)\n return;\n var isWithinTrackXBounds, isWithinTrackYBounds;\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);\n }\n // If any pointer event is called on the scrollbar\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Prevent event leaking\n e.stopPropagation();\n if (e.type === 'pointerdown' && e.pointerType !== 'touch') {\n if (isWithinTrackXBounds) {\n _this.axis.x.scrollbar.rect =\n _this.axis.x.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {\n _this.onDragStart(e, 'x');\n }\n else {\n _this.onTrackClick(e, 'x');\n }\n }\n if (isWithinTrackYBounds) {\n _this.axis.y.scrollbar.rect =\n _this.axis.y.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {\n _this.onDragStart(e, 'y');\n }\n else {\n _this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n /**\n * Drag scrollbar handle\n */\n this.drag = function (e) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n if (!_this.draggedAxis || !_this.contentWrapperEl)\n return;\n var eventOffset;\n var track = _this.axis[_this.draggedAxis].track;\n var trackSize = (_b = (_a = track.rect) === null || _a === void 0 ? void 0 : _a[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n var contentSize = (_d = (_c = _this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c[_this.axis[_this.draggedAxis].scrollSizeAttr]) !== null && _d !== void 0 ? _d : 0;\n var hostSize = parseInt((_f = (_e = _this.elStyles) === null || _e === void 0 ? void 0 : _e[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _f !== void 0 ? _f : '0px', 10);\n e.preventDefault();\n e.stopPropagation();\n if (_this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n }\n else {\n eventOffset = e.pageX;\n }\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n var dragPos = eventOffset -\n ((_h = (_g = track.rect) === null || _g === void 0 ? void 0 : _g[_this.axis[_this.draggedAxis].offsetAttr]) !== null && _h !== void 0 ? _h : 0) -\n _this.axis[_this.draggedAxis].dragOffset;\n dragPos =\n _this.draggedAxis === 'x' && _this.isRtl\n ? ((_k = (_j = track.rect) === null || _j === void 0 ? void 0 : _j[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _k !== void 0 ? _k : 0) -\n scrollbar.size -\n dragPos\n : dragPos;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n var dragPerc = dragPos / (trackSize - scrollbar.size);\n // Scroll the content by the same percentage.\n var scrollPos = dragPerc * (contentSize - hostSize);\n // Fix browsers inconsistency on RTL\n if (_this.draggedAxis === 'x' && _this.isRtl) {\n scrollPos = ((_l = SimpleBarCore.getRtlHelpers()) === null || _l === void 0 ? void 0 : _l.isScrollingToNegative)\n ? -scrollPos\n : scrollPos;\n }\n _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] =\n scrollPos;\n };\n /**\n * End scroll handle drag\n */\n this.onEndDrag = function (e) {\n _this.isDragging = false;\n var elDocument = getElementDocument(_this.el);\n var elWindow = getElementWindow(_this.el);\n e.preventDefault();\n e.stopPropagation();\n removeClasses(_this.el, _this.classNames.dragging);\n _this.onStopScrolling();\n elDocument.removeEventListener('mousemove', _this.drag, true);\n elDocument.removeEventListener('mouseup', _this.onEndDrag, true);\n _this.removePreventClickId = elWindow.setTimeout(function () {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', _this.preventClick, true);\n elDocument.removeEventListener('dblclick', _this.preventClick, true);\n _this.removePreventClickId = null;\n });\n };\n /**\n * Handler to ignore click events during drag\n */\n this.preventClick = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n this.el = element;\n this.options = __assign(__assign({}, SimpleBarCore.defaultOptions), options);\n this.classNames = __assign(__assign({}, SimpleBarCore.defaultOptions.classNames), options.classNames);\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n }\n };\n if (typeof this.el !== 'object' || !this.el.nodeName) {\n throw new Error(\"Argument passed to SimpleBar must be an HTML element instead of \".concat(this.el));\n }\n this.onMouseMove = throttle(this._onMouseMove, 64);\n this.onWindowResize = debounce(this._onWindowResize, 64, { leading: true });\n this.onStopScrolling = debounce(this._onStopScrolling, this.stopScrollDelay);\n this.onMouseEntered = debounce(this._onMouseEntered, this.stopScrollDelay);\n this.init();\n }\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n SimpleBarCore.getRtlHelpers = function () {\n if (SimpleBarCore.rtlHelpers) {\n return SimpleBarCore.rtlHelpers;\n }\n var dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '<div class=\"simplebar-dummy-scrollbar-size\"><div></div></div>';\n var scrollbarDummyEl = dummyDiv.firstElementChild;\n var dummyChild = scrollbarDummyEl === null || scrollbarDummyEl === void 0 ? void 0 : scrollbarDummyEl.firstElementChild;\n if (!dummyChild)\n return null;\n document.body.appendChild(scrollbarDummyEl);\n scrollbarDummyEl.scrollLeft = 0;\n var dummyContainerOffset = SimpleBarCore.getOffset(scrollbarDummyEl);\n var dummyChildOffset = SimpleBarCore.getOffset(dummyChild);\n scrollbarDummyEl.scrollLeft = -999;\n var dummyChildOffsetAfterScroll = SimpleBarCore.getOffset(dummyChild);\n document.body.removeChild(scrollbarDummyEl);\n SimpleBarCore.rtlHelpers = {\n // determines if the scrolling is responding with negative values\n isScrollOriginAtZero: dummyContainerOffset.left !== dummyChildOffset.left,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isScrollingToNegative: dummyChildOffset.left !== dummyChildOffsetAfterScroll.left\n };\n return SimpleBarCore.rtlHelpers;\n };\n SimpleBarCore.prototype.getScrollbarWidth = function () {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if ((this.contentWrapperEl &&\n getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n .display === 'none') ||\n 'scrollbarWidth' in document.documentElement.style ||\n '-ms-overflow-style' in document.documentElement.style) {\n return 0;\n }\n else {\n return scrollbarWidth();\n }\n }\n catch (e) {\n return scrollbarWidth();\n }\n };\n SimpleBarCore.getOffset = function (el) {\n var rect = el.getBoundingClientRect();\n var elDocument = getElementDocument(el);\n var elWindow = getElementWindow(el);\n return {\n top: rect.top +\n (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left: rect.left +\n (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n };\n SimpleBarCore.prototype.init = function () {\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n this.rtlHelpers = SimpleBarCore.getRtlHelpers();\n this.scrollbarWidth = this.getScrollbarWidth();\n this.recalculate();\n this.initListeners();\n }\n };\n SimpleBarCore.prototype.initDOM = function () {\n var _a, _b;\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.wrapper));\n this.contentWrapperEl =\n this.options.scrollableNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentWrapper));\n this.contentEl =\n this.options.contentNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentEl));\n this.offsetEl = this.el.querySelector(classNamesToQuery(this.classNames.offset));\n this.maskEl = this.el.querySelector(classNamesToQuery(this.classNames.mask));\n this.placeholderEl = this.findChild(this.wrapperEl, classNamesToQuery(this.classNames.placeholder));\n this.heightAutoObserverWrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverWrapperEl));\n this.heightAutoObserverEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverEl));\n this.axis.x.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.horizontal)));\n this.axis.y.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.vertical)));\n this.axis.x.scrollbar.el =\n ((_a = this.axis.x.track.el) === null || _a === void 0 ? void 0 : _a.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n this.axis.y.scrollbar.el =\n ((_b = this.axis.y.track.el) === null || _b === void 0 ? void 0 : _b.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n if (!this.options.autoHide) {\n addClasses(this.axis.x.scrollbar.el, this.classNames.visible);\n addClasses(this.axis.y.scrollbar.el, this.classNames.visible);\n }\n };\n SimpleBarCore.prototype.initListeners = function () {\n var _this = this;\n var _a;\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n this.el.addEventListener('pointerdown', this.onPointerEvent, true);\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', this.onScroll);\n // Browser zoom triggers a window resize\n elWindow.addEventListener('resize', this.onWindowResize);\n if (!this.contentEl)\n return;\n if (window.ResizeObserver) {\n // Hack for https://github.com/WICG/ResizeObserver/issues/38\n var resizeObserverStarted_1 = false;\n var resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n this.resizeObserver = new resizeObserver(function () {\n if (!resizeObserverStarted_1)\n return;\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n elWindow.requestAnimationFrame(function () {\n resizeObserverStarted_1 = true;\n });\n }\n // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n this.mutationObserver = new elWindow.MutationObserver(function () {\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n };\n SimpleBarCore.prototype.recalculate = function () {\n if (!this.heightAutoObserverEl ||\n !this.contentEl ||\n !this.contentWrapperEl ||\n !this.wrapperEl ||\n !this.placeholderEl)\n return;\n var elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n var contentElOffsetWidth = this.contentEl.offsetWidth;\n var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1 || contentElOffsetWidth > 0;\n var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n var elOverflowX = this.elStyles.overflowX;\n var elOverflowY = this.elStyles.overflowY;\n this.contentEl.style.padding = \"\".concat(this.elStyles.paddingTop, \" \").concat(this.elStyles.paddingRight, \" \").concat(this.elStyles.paddingBottom, \" \").concat(this.elStyles.paddingLeft);\n this.wrapperEl.style.margin = \"-\".concat(this.elStyles.paddingTop, \" -\").concat(this.elStyles.paddingRight, \" -\").concat(this.elStyles.paddingBottom, \" -\").concat(this.elStyles.paddingLeft);\n var contentElScrollHeight = this.contentEl.scrollHeight;\n var contentElScrollWidth = this.contentEl.scrollWidth;\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? \"\".concat(contentElOffsetWidth || contentElScrollWidth, \"px\")\n : 'auto';\n this.placeholderEl.style.height = \"\".concat(contentElScrollHeight, \"px\");\n var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n this.axis.x.isOverflowing =\n contentElOffsetWidth !== 0 && contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing =\n contentElScrollHeight > contentWrapperElOffsetHeight;\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n this.hideNativeScrollbar();\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n var offsetForXScrollbar = this.axis.x.isOverflowing\n ? this.scrollbarWidth\n : 0;\n var offsetForYScrollbar = this.axis.y.isOverflowing\n ? this.scrollbarWidth\n : 0;\n this.axis.x.isOverflowing =\n this.axis.x.isOverflowing &&\n contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing =\n this.axis.y.isOverflowing &&\n contentElScrollHeight >\n contentWrapperElOffsetHeight - offsetForXScrollbar;\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n if (this.axis.x.scrollbar.el)\n this.axis.x.scrollbar.el.style.width = \"\".concat(this.axis.x.scrollbar.size, \"px\");\n if (this.axis.y.scrollbar.el)\n this.axis.y.scrollbar.el.style.height = \"\".concat(this.axis.y.scrollbar.size, \"px\");\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n };\n /**\n * Calculate scrollbar size\n */\n SimpleBarCore.prototype.getScrollbarSize = function (axis) {\n var _a, _b;\n if (axis === void 0) { axis = 'y'; }\n if (!this.axis[axis].isOverflowing || !this.contentEl) {\n return 0;\n }\n var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n var trackSize = (_b = (_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbarRatio = trackSize / contentSize;\n var scrollbarSize;\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n return scrollbarSize;\n };\n SimpleBarCore.prototype.positionScrollbar = function (axis) {\n var _a, _b, _c;\n if (axis === void 0) { axis = 'y'; }\n var scrollbar = this.axis[axis].scrollbar;\n if (!this.axis[axis].isOverflowing ||\n !this.contentWrapperEl ||\n !scrollbar.el ||\n !this.elStyles) {\n return;\n }\n var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n var trackSize = ((_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) || 0;\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n ((_b = SimpleBarCore.getRtlHelpers()) === null || _b === void 0 ? void 0 : _b.isScrollOriginAtZero)\n ? -scrollOffset\n : scrollOffset;\n if (axis === 'x' && this.isRtl) {\n scrollOffset = ((_c = SimpleBarCore.getRtlHelpers()) === null || _c === void 0 ? void 0 : _c.isScrollingToNegative)\n ? scrollOffset\n : -scrollOffset;\n }\n var scrollPourcent = scrollOffset / (contentSize - hostSize);\n var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' && this.isRtl\n ? -handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n scrollbar.el.style.transform =\n axis === 'x'\n ? \"translate3d(\".concat(handleOffset, \"px, 0, 0)\")\n : \"translate3d(0, \".concat(handleOffset, \"px, 0)\");\n };\n SimpleBarCore.prototype.toggleTrackVisibility = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var track = this.axis[axis].track.el;\n var scrollbar = this.axis[axis].scrollbar.el;\n if (!track || !scrollbar || !this.contentWrapperEl)\n return;\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n this.el.classList.add(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n this.el.classList.remove(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n }\n else {\n scrollbar.style.display = 'none';\n }\n };\n SimpleBarCore.prototype.showScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.axis[axis].isOverflowing && !this.axis[axis].scrollbar.isVisible) {\n addClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = true;\n }\n };\n SimpleBarCore.prototype.hideScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.isDragging)\n return;\n if (this.axis[axis].isOverflowing && this.axis[axis].scrollbar.isVisible) {\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = false;\n }\n };\n SimpleBarCore.prototype.hideNativeScrollbar = function () {\n if (!this.offsetEl)\n return;\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n };\n SimpleBarCore.prototype.onMouseMoveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!currentAxis.track.el || !currentAxis.scrollbar.el)\n return;\n currentAxis.track.rect = currentAxis.track.el.getBoundingClientRect();\n currentAxis.scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n if (this.isWithinBounds(currentAxis.track.rect)) {\n this.showScrollbar(axis);\n addClasses(currentAxis.track.el, this.classNames.hover);\n if (this.isWithinBounds(currentAxis.scrollbar.rect)) {\n addClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n else {\n removeClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n }\n else {\n removeClasses(currentAxis.track.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n }\n };\n SimpleBarCore.prototype.onMouseLeaveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n removeClasses(this.axis[axis].track.el, this.classNames.hover);\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n };\n /**\n * on scrollbar handle drag movement starts\n */\n SimpleBarCore.prototype.onDragStart = function (e, axis) {\n var _a;\n if (axis === void 0) { axis = 'y'; }\n this.isDragging = true;\n var elDocument = getElementDocument(this.el);\n var elWindow = getElementWindow(this.el);\n var scrollbar = this.axis[axis].scrollbar;\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset - (((_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) || 0);\n this.draggedAxis = axis;\n addClasses(this.el, this.classNames.dragging);\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n }\n else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n };\n SimpleBarCore.prototype.onTrackClick = function (e, axis) {\n var _this = this;\n var _a, _b, _c, _d;\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!this.options.clickOnTrack ||\n !currentAxis.scrollbar.el ||\n !this.contentWrapperEl)\n return;\n // Preventing the event's default to trigger click underneath\n e.preventDefault();\n var elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n var scrollbar = this.axis[axis].scrollbar;\n var scrollbarOffset = (_b = (_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) !== null && _b !== void 0 ? _b : 0;\n var hostSize = parseInt((_d = (_c = this.elStyles) === null || _c === void 0 ? void 0 : _c[this.axis[axis].sizeAttr]) !== null && _d !== void 0 ? _d : '0px', 10);\n var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n var t = axis === 'y'\n ? this.mouseY - scrollbarOffset\n : this.mouseX - scrollbarOffset;\n var dir = t < 0 ? -1 : 1;\n var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n var speed = 40;\n var scrollTo = function () {\n if (!_this.contentWrapperEl)\n return;\n if (dir === -1) {\n if (scrolled > scrollSize) {\n scrolled -= speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n else {\n if (scrolled < scrollSize) {\n scrolled += speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n scrollTo();\n };\n /**\n * Getter for content element\n */\n SimpleBarCore.prototype.getContentElement = function () {\n return this.contentEl;\n };\n /**\n * Getter for original scrolling element\n */\n SimpleBarCore.prototype.getScrollElement = function () {\n return this.contentWrapperEl;\n };\n SimpleBarCore.prototype.removeListeners = function () {\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n this.el.removeEventListener('pointerdown', this.onPointerEvent, true);\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n elWindow.removeEventListener('resize', this.onWindowResize);\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n // Cancel all debounced functions\n this.onMouseMove.cancel();\n this.onWindowResize.cancel();\n this.onStopScrolling.cancel();\n this.onMouseEntered.cancel();\n };\n /**\n * Remove all listeners from DOM nodes\n */\n SimpleBarCore.prototype.unMount = function () {\n this.removeListeners();\n };\n /**\n * Check if mouse is within bounds\n */\n SimpleBarCore.prototype.isWithinBounds = function (bbox) {\n return (this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height);\n };\n /**\n * Find element children matches query\n */\n SimpleBarCore.prototype.findChild = function (el, query) {\n var matches = el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, function (child) {\n return matches.call(child, query);\n })[0];\n };\n SimpleBarCore.rtlHelpers = null;\n SimpleBarCore.defaultOptions = {\n forceVisible: false,\n clickOnTrack: true,\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n ariaLabel: 'scrollable content',\n tabIndex: 0,\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging',\n scrolling: 'simplebar-scrolling',\n scrollable: 'simplebar-scrollable',\n mouseEntered: 'simplebar-mouse-entered'\n },\n scrollableNode: null,\n contentNode: null,\n autoHide: true\n };\n /**\n * Static functions\n */\n SimpleBarCore.getOptions = getOptions;\n SimpleBarCore.helpers = helpers;\n return SimpleBarCore;\n}());\n\nexport { SimpleBarCore as default };\n//# sourceMappingURL=index.mjs.map\n","/**\n * simplebar - v6.3.3\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport SimpleBarCore from 'simplebar-core';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar _a = SimpleBarCore.helpers, getOptions = _a.getOptions, addClasses = _a.addClasses, canUseDOM = _a.canUseDOM;\nvar SimpleBar = /** @class */ (function (_super) {\n __extends(SimpleBar, _super);\n function SimpleBar() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n // // Save a reference to the instance, so we know this DOM node has already been instancied\n SimpleBar.instances.set(args[0], _this);\n return _this;\n }\n SimpleBar.initDOMLoadedElements = function () {\n document.removeEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.removeEventListener('load', this.initDOMLoadedElements);\n Array.prototype.forEach.call(document.querySelectorAll('[data-simplebar]'), function (el) {\n if (el.getAttribute('data-simplebar') !== 'init' &&\n !SimpleBar.instances.has(el))\n new SimpleBar(el, getOptions(el.attributes));\n });\n };\n SimpleBar.removeObserver = function () {\n var _a;\n (_a = SimpleBar.globalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n };\n SimpleBar.prototype.initDOM = function () {\n var _this = this;\n var _a, _b, _c;\n // make sure this element doesn't have the elements yet\n if (!Array.prototype.filter.call(this.el.children, function (child) {\n return child.classList.contains(_this.classNames.wrapper);\n }).length) {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentWrapperEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n addClasses(this.wrapperEl, this.classNames.wrapper);\n addClasses(this.contentWrapperEl, this.classNames.contentWrapper);\n addClasses(this.offsetEl, this.classNames.offset);\n addClasses(this.maskEl, this.classNames.mask);\n addClasses(this.contentEl, this.classNames.contentEl);\n addClasses(this.placeholderEl, this.classNames.placeholder);\n addClasses(this.heightAutoObserverWrapperEl, this.classNames.heightAutoObserverWrapperEl);\n addClasses(this.heightAutoObserverEl, this.classNames.heightAutoObserverEl);\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n this.contentWrapperEl.appendChild(this.contentEl);\n this.offsetEl.appendChild(this.contentWrapperEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.setAttribute('tabindex', this.options.tabIndex.toString());\n (_b = this.contentWrapperEl) === null || _b === void 0 ? void 0 : _b.setAttribute('role', 'region');\n (_c = this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c.setAttribute('aria-label', this.options.ariaLabel);\n }\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n var track = document.createElement('div');\n var scrollbar = document.createElement('div');\n addClasses(track, this.classNames.track);\n addClasses(scrollbar, this.classNames.scrollbar);\n track.appendChild(scrollbar);\n this.axis.x.track.el = track.cloneNode(true);\n addClasses(this.axis.x.track.el, this.classNames.horizontal);\n this.axis.y.track.el = track.cloneNode(true);\n addClasses(this.axis.y.track.el, this.classNames.vertical);\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n SimpleBarCore.prototype.initDOM.call(this);\n this.el.setAttribute('data-simplebar', 'init');\n };\n SimpleBar.prototype.unMount = function () {\n SimpleBarCore.prototype.unMount.call(this);\n SimpleBar.instances[\"delete\"](this.el);\n };\n SimpleBar.initHtmlApi = function () {\n this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this);\n // MutationObserver is IE11+\n if (typeof MutationObserver !== 'undefined') {\n // Mutation observer to observe dynamically added elements\n this.globalObserver = new MutationObserver(SimpleBar.handleMutations);\n this.globalObserver.observe(document, { childList: true, subtree: true });\n }\n // Taken from jQuery `ready` function\n // Instantiate elements already present on the page\n if (document.readyState === 'complete' || // @ts-ignore: IE specific\n (document.readyState !== 'loading' && !document.documentElement.doScroll)) {\n // Handle it asynchronously to allow scripts the opportunity to delay init\n window.setTimeout(this.initDOMLoadedElements);\n }\n else {\n document.addEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.addEventListener('load', this.initDOMLoadedElements);\n }\n };\n SimpleBar.handleMutations = function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (addedNode) {\n if (addedNode.nodeType === 1) {\n if (addedNode.hasAttribute('data-simplebar')) {\n !SimpleBar.instances.has(addedNode) &&\n document.documentElement.contains(addedNode) &&\n new SimpleBar(addedNode, getOptions(addedNode.attributes));\n }\n else {\n addedNode\n .querySelectorAll('[data-simplebar]')\n .forEach(function (el) {\n if (el.getAttribute('data-simplebar') !== 'init' &&\n !SimpleBar.instances.has(el) &&\n document.documentElement.contains(el))\n new SimpleBar(el, getOptions(el.attributes));\n });\n }\n }\n });\n mutation.removedNodes.forEach(function (removedNode) {\n var _a;\n if (removedNode.nodeType === 1) {\n if (removedNode.getAttribute('data-simplebar') === 'init') {\n !document.documentElement.contains(removedNode) &&\n ((_a = SimpleBar.instances.get(removedNode)) === null || _a === void 0 ? void 0 : _a.unMount());\n }\n else {\n Array.prototype.forEach.call(removedNode.querySelectorAll('[data-simplebar=\"init\"]'), function (el) {\n var _a;\n !document.documentElement.contains(el) &&\n ((_a = SimpleBar.instances.get(el)) === null || _a === void 0 ? void 0 : _a.unMount());\n });\n }\n }\n });\n });\n };\n SimpleBar.instances = new WeakMap();\n return SimpleBar;\n}(SimpleBarCore));\n/**\n * HTML API\n * Called only in a browser env.\n */\nif (canUseDOM) {\n SimpleBar.initHtmlApi();\n}\n\nexport { SimpleBar as default };\n//# sourceMappingURL=index.mjs.map\n","<!-- dummy component to enforce global stuff in child projects -->\n<template>{{ VITE_APP_VERSION() }}</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClUI',\n methods: {\n VITE_APP_VERSION: () => VITE_APP_VERSION ?? '?.?.?'\n }\n})\n</script>\n\n<style lang=\"scss\">\n// pull in non-vue css\n@use '@/styles/vendors/bootstrap'; // must go first\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/layout/animation';\n@use '@/styles/layout/app';\n@use '@/styles/layout/color';\n@use '@/styles/layout/grid';\n@use '@/styles/layout/helper';\n@use '@/styles/layout/meta';\n@use '@/styles/layout/screenreader';\n@use '@/styles/layout/scrollbar';\n@use '@/styles/layout/section';\n@use '@/styles/layout/spacing';\n@use '@/styles/layout/typography' with (\n $cl-url-prefix: '@/styles/fonts/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/assets/logo' with (\n $cl-url-prefix: '@/styles/assets/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/styles/fonts/FontAwesome5' with (\n $cl-url-prefix: '@/styles/fonts/FontAwesome5/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/components/ClAlert/style' as *;\n@use '@/components/ClBadge/style' as *;\n@use '@/components/ClBlockquote/style' as *;\n@use '@/components/ClButton/style' as *;\n@use '@/components/ClCard/style' as *;\n@use '@/components/ClDropdown/style' as *;\n@use '@/components/ClDropzone/style' as *;\n@use '@/components/ClFooter/style' as *;\n@use '@/components/ClHighlight/style' as *;\n@use '@/components/ClIcon/style' as *;\n@use '@/components/ClIconotron/style' as *;\n@use '@/components/ClList/style' as *;\n@use '@/components/ClListGroup/style' as *;\n@use '@/components/ClPagination/style' as *;\n@use '@/components/ClProgress/style' as *;\n@use '@/components/ClScrollbar/style' as *;\n@use '@/components/ClSpinner/style' as *;\n@use '@/components/ClTabs/style' as *;\n@use '@/components/ClToggle/style' as *;\n@use '@/components/ClTooltip/style' as *;\n@use '@/components/ClWizard/style' as *;\n@use '@/components/form/ClField/style' as *;\n@use '@/components/form/ClFieldCheck/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldCheck/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldFile/style' as *;\n@use '@/components/form/ClFieldGroup/style' as *;\n@use '@/components/form/ClFieldInput/style' as *;\n@use '@/components/form/ClFieldSelect/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldSelect/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldSet/style' as *;\n@use '@/components/form/ClForm/style' as *;\n@use '@/components/modal/ClModal/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavDrawer/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavItemDarkMode/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavSideMenu/style' as *;\n@use '@/components/navigation/ClNavSide/style' as *;\n@use '@/components/navigation/ClNavTop/style' as *;\n@use '@/components/section/ClSectionDetails/style' as *;\n@use '@/components/section/ClSectionForm/style' as *;\n@use '@/components/section/ClSectionHeadline/style' as *;\n@use '@/components/section/ClSectionMainSide/style' as *;\n@use '@/components/table/ClTable/style' as *;\n@use '@/components/table/ClTableCel/Actions/style' as *;\n@use '@/components/table/ClTableCel/Audit/style' as *;\n@use '@/components/table/ClTableCel/Boolean/style' as *;\n@use '@/components/table/ClTableCel/Checkbox/style' as *;\n@use '@/components/table/ClTableCel/Code/style' as *;\n@use '@/components/table/ClTableCel/Currency/style' as *;\n@use '@/components/table/ClTableCel/Date/style' as *;\n@use '@/components/table/ClTableCel/ID/style' as *;\n@use '@/components/table/ClTableCel/Links/style' as *;\n@use '@/components/table/ClTableCel/style' as *;\n@use '@/components/table/ClTableCel/Time/style' as *;\n@use '@/components/table/ClTableFootChecked/style' as *;\n@use '@/components/table/ClTableHead/style' as *;\n@use '@/components/text/ClCopy/style' as *;\n@use '@/components/text/ClHashtag/style' as *;\n@use '@/components/text/ClLinkExternal/style' as *;\n@use '@/components/text/ClOrg/style' as *;\n@use '@/components/text/ClPlan/style' as *;\n@use '@/components/text/ClRole/style' as *;\n@use '@/components/widget/ClBackCancelOk/style' as *;\n@use '@/components/widget/ClCookieBanner/style' as *;\n@use '@/components/widget/ClPage/style' as *;\n\n@use '@/styles/themes/dark' as * with (\n $cl-url-prefix: '@/styles/themes/',\n $cl-url-postfix: '?no-inline'\n);\n</style>\n","<!-- dummy component to enforce global stuff in child projects -->\n<template>{{ VITE_APP_VERSION() }}</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClUI',\n methods: {\n VITE_APP_VERSION: () => VITE_APP_VERSION ?? '?.?.?'\n }\n})\n</script>\n\n<style lang=\"scss\">\n// pull in non-vue css\n@use '@/styles/vendors/bootstrap'; // must go first\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/layout/animation';\n@use '@/styles/layout/app';\n@use '@/styles/layout/color';\n@use '@/styles/layout/grid';\n@use '@/styles/layout/helper';\n@use '@/styles/layout/meta';\n@use '@/styles/layout/screenreader';\n@use '@/styles/layout/scrollbar';\n@use '@/styles/layout/section';\n@use '@/styles/layout/spacing';\n@use '@/styles/layout/typography' with (\n $cl-url-prefix: '@/styles/fonts/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/assets/logo' with (\n $cl-url-prefix: '@/styles/assets/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/styles/fonts/FontAwesome5' with (\n $cl-url-prefix: '@/styles/fonts/FontAwesome5/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/components/ClAlert/style' as *;\n@use '@/components/ClBadge/style' as *;\n@use '@/components/ClBlockquote/style' as *;\n@use '@/components/ClButton/style' as *;\n@use '@/components/ClCard/style' as *;\n@use '@/components/ClDropdown/style' as *;\n@use '@/components/ClDropzone/style' as *;\n@use '@/components/ClFooter/style' as *;\n@use '@/components/ClHighlight/style' as *;\n@use '@/components/ClIcon/style' as *;\n@use '@/components/ClIconotron/style' as *;\n@use '@/components/ClList/style' as *;\n@use '@/components/ClListGroup/style' as *;\n@use '@/components/ClPagination/style' as *;\n@use '@/components/ClProgress/style' as *;\n@use '@/components/ClScrollbar/style' as *;\n@use '@/components/ClSpinner/style' as *;\n@use '@/components/ClTabs/style' as *;\n@use '@/components/ClToggle/style' as *;\n@use '@/components/ClTooltip/style' as *;\n@use '@/components/ClWizard/style' as *;\n@use '@/components/form/ClField/style' as *;\n@use '@/components/form/ClFieldCheck/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldCheck/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldFile/style' as *;\n@use '@/components/form/ClFieldGroup/style' as *;\n@use '@/components/form/ClFieldInput/style' as *;\n@use '@/components/form/ClFieldSelect/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldSelect/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldSet/style' as *;\n@use '@/components/form/ClForm/style' as *;\n@use '@/components/modal/ClModal/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavDrawer/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavItemDarkMode/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavSideMenu/style' as *;\n@use '@/components/navigation/ClNavSide/style' as *;\n@use '@/components/navigation/ClNavTop/style' as *;\n@use '@/components/section/ClSectionDetails/style' as *;\n@use '@/components/section/ClSectionForm/style' as *;\n@use '@/components/section/ClSectionHeadline/style' as *;\n@use '@/components/section/ClSectionMainSide/style' as *;\n@use '@/components/table/ClTable/style' as *;\n@use '@/components/table/ClTableCel/Actions/style' as *;\n@use '@/components/table/ClTableCel/Audit/style' as *;\n@use '@/components/table/ClTableCel/Boolean/style' as *;\n@use '@/components/table/ClTableCel/Checkbox/style' as *;\n@use '@/components/table/ClTableCel/Code/style' as *;\n@use '@/components/table/ClTableCel/Currency/style' as *;\n@use '@/components/table/ClTableCel/Date/style' as *;\n@use '@/components/table/ClTableCel/ID/style' as *;\n@use '@/components/table/ClTableCel/Links/style' as *;\n@use '@/components/table/ClTableCel/style' as *;\n@use '@/components/table/ClTableCel/Time/style' as *;\n@use '@/components/table/ClTableFootChecked/style' as *;\n@use '@/components/table/ClTableHead/style' as *;\n@use '@/components/text/ClCopy/style' as *;\n@use '@/components/text/ClHashtag/style' as *;\n@use '@/components/text/ClLinkExternal/style' as *;\n@use '@/components/text/ClOrg/style' as *;\n@use '@/components/text/ClPlan/style' as *;\n@use '@/components/text/ClRole/style' as *;\n@use '@/components/widget/ClBackCancelOk/style' as *;\n@use '@/components/widget/ClCookieBanner/style' as *;\n@use '@/components/widget/ClPage/style' as *;\n\n@use '@/styles/themes/dark' as * with (\n $cl-url-prefix: '@/styles/themes/',\n $cl-url-postfix: '?no-inline'\n);\n</style>\n","<template>\n <p class=\"alert\" :class=\"`cl-alert-${type}`\" role=\"alert\">\n <slot />\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClAlert',\n props: {\n type: {\n type: String as PropType<\n 'success' | 'danger' | 'warning' | 'info' | 'suggestion' | 'check' | 'locked'\n >,\n default: 'info'\n }\n }\n})\n</script>\n","<template>\n <p class=\"alert\" :class=\"`cl-alert-${type}`\" role=\"alert\">\n <slot />\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClAlert',\n props: {\n type: {\n type: String as PropType<\n 'success' | 'danger' | 'warning' | 'info' | 'suggestion' | 'check' | 'locked'\n >,\n default: 'info'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClAlert from './template.vue'\n\nClAlert.install = (Vue: App) => {\n Vue.component(ClAlert.name ?? 'ClNoName', ClAlert)\n}\n\nexport default ClAlert\n","/*!\n * Bootstrap v5.3.8 (https://getbootstrap.com/)\n * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,function(){\"use strict\";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i=\"transitionend\",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\\s\"#']+)/g,(t,e)=>`#${CSS.escape(e)}`)),t),s=t=>null==t?`${t}`:Object.prototype.toString.call(t).match(/\\s([a-z]+)/i)[1].toLowerCase(),o=t=>{t.dispatchEvent(new Event(i))},r=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),a=t=>r(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(n(t)):null,l=t=>{if(!r(t)||0===t.getClientRects().length)return!1;const e=\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),i=t.closest(\"details:not([open])\");if(!i)return e;if(i!==t){const e=t.closest(\"summary\");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),h=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute(\"data-bs-no-jquery\")?window.jQuery:null,p=[],m=()=>\"rtl\"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},\"loading\"===document.readyState?(p.length||document.addEventListener(\"DOMContentLoaded\",()=>{for(const t of p)t()}),p.push(e)):e()},_=(t,e=[],i=t)=>\"function\"==typeof t?t.call(...e):i,b=(t,e,n=!0)=>{if(!n)return void _(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),_(t))};e.addEventListener(i,a),setTimeout(()=>{r||o(e)},s)},v=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},y=/[^.]*(?=\\..*)\\.|.*/,w=/\\..*/,A=/::\\d+$/,E={};let T=1;const C={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},O=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function x(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function k(t){const e=x(t);return t.uidEvent=e,E[e]=E[e]||{},E[e]}function L(t,e,i=null){return Object.values(t).find(t=>t.callable===e&&t.delegationSelector===i)}function S(t,e,i){const n=\"string\"==typeof e,s=n?i:e||i;let o=N(t);return O.has(o)||(o=t),[n,s,o]}function D(t,e,i,n,s){if(\"string\"!=typeof e||!t)return;let[o,r,a]=S(e,i,n);if(e in C){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=k(t),c=l[a]||(l[a]={}),h=L(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=x(r,e.replace(y,\"\")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return j(s,{delegateTarget:r}),n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return j(n,{delegateTarget:t}),i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function $(t,e,i,n,s){const o=L(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function I(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&$(t,e,i,r.callable,r.delegationSelector)}function N(t){return t=t.replace(w,\"\"),C[t]||t}const P={on(t,e,i,n){D(t,e,i,n,!1)},one(t,e,i,n){D(t,e,i,n,!0)},off(t,e,i,n){if(\"string\"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=k(t),c=l[r]||{},h=e.startsWith(\".\");if(void 0===o){if(h)for(const i of Object.keys(l))I(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(A,\"\");a&&!e.includes(s)||$(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;$(t,l,r,o,s?i:null)}},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const n=f();let s=null,o=!0,r=!0,a=!1;e!==N(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=j(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function j(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if(\"true\"===t)return!0;if(\"false\"===t)return!1;if(t===Number(t).toString())return Number(t);if(\"\"===t||\"null\"===t)return null;if(\"string\"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function F(t){return t.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const H={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter(t=>t.startsWith(\"bs\")&&!t.startsWith(\"bsConfig\"));for(const n of i){let i=n.replace(/^bs/,\"\");i=i.charAt(0).toLowerCase()+i.slice(1),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${F(e)}`))};class W{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=r(e)?H.getDataAttribute(e,\"config\"):{};return{...this.constructor.Default,...\"object\"==typeof i?i:{},...r(e)?H.getDataAttributes(e):{},...\"object\"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[i,n]of Object.entries(e)){const e=t[i],o=r(e)?\"element\":s(e);if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${i}\" provided type \"${o}\" but expected type \"${n}\".`)}}}class B extends W{constructor(t,i){super(),(t=a(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){b(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(a(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.3.8\"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const z=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?i.trim():null}return e?e.split(\",\").map(t=>n(t)).join(\",\"):null},R={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map(t=>`${t}:not([tabindex^=\"-\"])`).join(\",\");return this.find(e,t).filter(t=>!c(t)&&l(t))},getSelectorFromElement(t){const e=z(t);return e&&R.findOne(e)?e:null},getElementFromSelector(t){const e=z(t);return e?R.findOne(e):null},getMultipleElementsFromSelector(t){const e=z(t);return e?R.find(e):[]}},q=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;P.on(document,i,`[data-bs-dismiss=\"${n}\"]`,function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),c(this))return;const s=R.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()})},V=\".bs.alert\",K=`close${V}`,Q=`closed${V}`;class X extends B{static get NAME(){return\"alert\"}close(){if(P.trigger(this._element,K).defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),P.trigger(this._element,Q),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=X.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}})}}q(X,\"close\"),g(X);const Y='[data-bs-toggle=\"button\"]';class U extends B{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each(function(){const e=U.getOrCreateInstance(this);\"toggle\"===t&&e[t]()})}}P.on(document,\"click.bs.button.data-api\",Y,t=>{t.preventDefault();const e=t.target.closest(Y);U.getOrCreateInstance(e).toggle()}),g(U);const G=\".bs.swipe\",J=`touchstart${G}`,Z=`touchmove${G}`,tt=`touchend${G}`,et=`pointerdown${G}`,it=`pointerup${G}`,nt={endCallback:null,leftCallback:null,rightCallback:null},st={endCallback:\"(function|null)\",leftCallback:\"(function|null)\",rightCallback:\"(function|null)\"};class ot extends W{constructor(t,e){super(),this._element=t,t&&ot.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return nt}static get DefaultType(){return st}static get NAME(){return\"swipe\"}dispose(){P.off(this._element,G)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),_(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&_(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(P.on(this._element,et,t=>this._start(t)),P.on(this._element,it,t=>this._end(t)),this._element.classList.add(\"pointer-event\")):(P.on(this._element,J,t=>this._start(t)),P.on(this._element,Z,t=>this._move(t)),P.on(this._element,tt,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType)}static isSupported(){return\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0}}const rt=\".bs.carousel\",at=\".data-api\",lt=\"ArrowLeft\",ct=\"ArrowRight\",ht=\"next\",dt=\"prev\",ut=\"left\",ft=\"right\",pt=`slide${rt}`,mt=`slid${rt}`,gt=`keydown${rt}`,_t=`mouseenter${rt}`,bt=`mouseleave${rt}`,vt=`dragstart${rt}`,yt=`load${rt}${at}`,wt=`click${rt}${at}`,At=\"carousel\",Et=\"active\",Tt=\".active\",Ct=\".carousel-item\",Ot=Tt+Ct,xt={[lt]:ft,[ct]:ut},kt={interval:5e3,keyboard:!0,pause:\"hover\",ride:!1,touch:!0,wrap:!0},Lt={interval:\"(number|boolean)\",keyboard:\"boolean\",pause:\"(string|boolean)\",ride:\"(boolean|string)\",touch:\"boolean\",wrap:\"boolean\"};class St extends B{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=R.findOne(\".carousel-indicators\",this._element),this._addEventListeners(),this._config.ride===At&&this.cycle()}static get Default(){return kt}static get DefaultType(){return Lt}static get NAME(){return\"carousel\"}next(){this._slide(ht)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(dt)}pause(){this._isSliding&&o(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?P.one(this._element,mt,()=>this.cycle()):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void P.one(this._element,mt,()=>this.to(t));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?ht:dt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&P.on(this._element,gt,t=>this._keydown(t)),\"hover\"===this._config.pause&&(P.on(this._element,_t,()=>this.pause()),P.on(this._element,bt,()=>this._maybeEnableCycle())),this._config.touch&&ot.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of R.find(\".carousel-item img\",this._element))P.on(t,vt,t=>t.preventDefault());const t={leftCallback:()=>this._slide(this._directionToOrder(ut)),rightCallback:()=>this._slide(this._directionToOrder(ft)),endCallback:()=>{\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new ot(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=xt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=R.findOne(Tt,this._indicatorsElement);e.classList.remove(Et),e.removeAttribute(\"aria-current\");const i=R.findOne(`[data-bs-slide-to=\"${t}\"]`,this._indicatorsElement);i&&(i.classList.add(Et),i.setAttribute(\"aria-current\",\"true\"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute(\"data-bs-interval\"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===ht,s=e||v(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>P.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(pt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?\"carousel-item-start\":\"carousel-item-end\",c=n?\"carousel-item-next\":\"carousel-item-prev\";s.classList.add(c),u(s),i.classList.add(l),s.classList.add(l),this._queueCallback(()=>{s.classList.remove(l,c),s.classList.add(Et),i.classList.remove(Et,c,l),this._isSliding=!1,r(mt)},i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(\"slide\")}_getActive(){return R.findOne(Ot,this._element)}_getItems(){return R.find(Ct,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return m()?t===ut?dt:ht:t===ut?ht:dt}_orderToDirection(t){return m()?t===dt?ut:ft:t===dt?ft:ut}static jQueryInterface(t){return this.each(function(){const e=St.getOrCreateInstance(this,t);if(\"number\"!=typeof t){if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}else e.to(t)})}}P.on(document,wt,\"[data-bs-slide], [data-bs-slide-to]\",function(t){const e=R.getElementFromSelector(this);if(!e||!e.classList.contains(At))return;t.preventDefault();const i=St.getOrCreateInstance(e),n=this.getAttribute(\"data-bs-slide-to\");return n?(i.to(n),void i._maybeEnableCycle()):\"next\"===H.getDataAttribute(this,\"slide\")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())}),P.on(window,yt,()=>{const t=R.find('[data-bs-ride=\"carousel\"]');for(const e of t)St.getOrCreateInstance(e)}),g(St);const Dt=\".bs.collapse\",$t=`show${Dt}`,It=`shown${Dt}`,Nt=`hide${Dt}`,Pt=`hidden${Dt}`,jt=`click${Dt}.data-api`,Mt=\"show\",Ft=\"collapse\",Ht=\"collapsing\",Wt=`:scope .${Ft} .${Ft}`,Bt='[data-bs-toggle=\"collapse\"]',zt={parent:null,toggle:!0},Rt={parent:\"(null|element)\",toggle:\"boolean\"};class qt extends B{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=R.find(Bt);for(const t of i){const e=R.getSelectorFromElement(t),i=R.find(e).filter(t=>t===this._element);null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return zt}static get DefaultType(){return Rt}static get NAME(){return\"collapse\"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(\".collapse.show, .collapse.collapsing\").filter(t=>t!==this._element).map(t=>qt.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning)return;if(P.trigger(this._element,$t).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(Ht),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ht),this._element.classList.add(Ft,Mt),this._element.style[e]=\"\",P.trigger(this._element,It)},this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(P.trigger(this._element,Nt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(Ht),this._element.classList.remove(Ft,Mt);for(const t of this._triggerArray){const e=R.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]=\"\",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ht),this._element.classList.add(Ft),P.trigger(this._element,Pt)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(Mt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=a(t.parent),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Bt);for(const e of t){const t=R.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=R.find(Wt,this._config.parent);return R.find(t,this._config.parent).filter(t=>!e.includes(t))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle(\"collapsed\",!e),i.setAttribute(\"aria-expanded\",e)}static jQueryInterface(t){const e={};return\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each(function(){const i=qt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}})}}P.on(document,jt,Bt,function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of R.getMultipleElementsFromSelector(this))qt.getOrCreateInstance(t,{toggle:!1}).toggle()}),g(qt);var Vt=\"top\",Kt=\"bottom\",Qt=\"right\",Xt=\"left\",Yt=\"auto\",Ut=[Vt,Kt,Qt,Xt],Gt=\"start\",Jt=\"end\",Zt=\"clippingParents\",te=\"viewport\",ee=\"popper\",ie=\"reference\",ne=Ut.reduce(function(t,e){return t.concat([e+\"-\"+Gt,e+\"-\"+Jt])},[]),se=[].concat(Ut,[Yt]).reduce(function(t,e){return t.concat([e,e+\"-\"+Gt,e+\"-\"+Jt])},[]),oe=\"beforeRead\",re=\"read\",ae=\"afterRead\",le=\"beforeMain\",ce=\"main\",he=\"afterMain\",de=\"beforeWrite\",ue=\"write\",fe=\"afterWrite\",pe=[oe,re,ae,le,ce,he,de,ue,fe];function me(t){return t?(t.nodeName||\"\").toLowerCase():null}function ge(t){if(null==t)return window;if(\"[object Window]\"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function _e(t){return t instanceof ge(t).Element||t instanceof Element}function be(t){return t instanceof ge(t).HTMLElement||t instanceof HTMLElement}function ve(t){return\"undefined\"!=typeof ShadowRoot&&(t instanceof ge(t).ShadowRoot||t instanceof ShadowRoot)}const ye={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:function(t){var e=t.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];be(s)&&me(s)&&(Object.assign(s.style,i),Object.keys(n).forEach(function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?\"\":e)}))})},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach(function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce(function(t,e){return t[e]=\"\",t},{});be(n)&&me(n)&&(Object.assign(n.style,o),Object.keys(s).forEach(function(t){n.removeAttribute(t)}))})}},requires:[\"computeStyles\"]};function we(t){return t.split(\"-\")[0]}var Ae=Math.max,Ee=Math.min,Te=Math.round;function Ce(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(t){return t.brand+\"/\"+t.version}).join(\" \"):navigator.userAgent}function Oe(){return!/^((?!chrome|android).)*safari/i.test(Ce())}function xe(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&be(t)&&(s=t.offsetWidth>0&&Te(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Te(n.height)/t.offsetHeight||1);var r=(_e(t)?ge(t):window).visualViewport,a=!Oe()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function ke(t){var e=xe(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Le(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ve(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Se(t){return ge(t).getComputedStyle(t)}function De(t){return[\"table\",\"td\",\"th\"].indexOf(me(t))>=0}function $e(t){return((_e(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ie(t){return\"html\"===me(t)?t:t.assignedSlot||t.parentNode||(ve(t)?t.host:null)||$e(t)}function Ne(t){return be(t)&&\"fixed\"!==Se(t).position?t.offsetParent:null}function Pe(t){for(var e=ge(t),i=Ne(t);i&&De(i)&&\"static\"===Se(i).position;)i=Ne(i);return i&&(\"html\"===me(i)||\"body\"===me(i)&&\"static\"===Se(i).position)?e:i||function(t){var e=/firefox/i.test(Ce());if(/Trident/i.test(Ce())&&be(t)&&\"fixed\"===Se(t).position)return null;var i=Ie(t);for(ve(i)&&(i=i.host);be(i)&&[\"html\",\"body\"].indexOf(me(i))<0;){var n=Se(i);if(\"none\"!==n.transform||\"none\"!==n.perspective||\"paint\"===n.contain||-1!==[\"transform\",\"perspective\"].indexOf(n.willChange)||e&&\"filter\"===n.willChange||e&&n.filter&&\"none\"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function je(t){return[\"top\",\"bottom\"].indexOf(t)>=0?\"x\":\"y\"}function Me(t,e,i){return Ae(t,Ee(e,i))}function Fe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function He(t,e){return e.reduce(function(e,i){return e[i]=t,e},{})}const We={name:\"arrow\",enabled:!0,phase:\"main\",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=we(i.placement),l=je(a),c=[Xt,Qt].indexOf(a)>=0?\"height\":\"width\";if(o&&r){var h=function(t,e){return Fe(\"number\"!=typeof(t=\"function\"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:He(t,Ut))}(s.padding,i),d=ke(o),u=\"y\"===l?Vt:Xt,f=\"y\"===l?Kt:Qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=Pe(o),_=g?\"y\"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Me(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?\"[data-popper-arrow]\":i;null!=n&&(\"string\"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Le(e.elements.popper,n)&&(e.elements.arrow=n)},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function Be(t){return t.split(\"-\")[1]}var ze={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function Re(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g=\"function\"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty(\"x\"),b=r.hasOwnProperty(\"y\"),v=Xt,y=Vt,w=window;if(c){var A=Pe(i),E=\"clientHeight\",T=\"clientWidth\";A===ge(i)&&\"static\"!==Se(A=$e(i)).position&&\"absolute\"===a&&(E=\"scrollHeight\",T=\"scrollWidth\"),(s===Vt||(s===Xt||s===Qt)&&o===Jt)&&(y=Kt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Xt&&(s!==Vt&&s!==Kt||o!==Jt)||(v=Qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&ze),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:Te(i*s)/s||0,y:Te(n*s)/s||0}}({x:f,y:m},ge(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?\"0\":\"\",C[v]=_?\"0\":\"\",C.transform=(w.devicePixelRatio||1)<=1?\"translate(\"+f+\"px, \"+m+\"px)\":\"translate3d(\"+f+\"px, \"+m+\"px, 0)\",C)):Object.assign({},O,((e={})[y]=b?m+\"px\":\"\",e[v]=_?f+\"px\":\"\",e.transform=\"\",e))}const qe={name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:we(e.placement),variation:Be(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:\"fixed\"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Re(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Re(Object.assign({},c,{offsets:e.modifiersData.arrow,position:\"absolute\",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-placement\":e.placement})},data:{}};var Ve={passive:!0};const Ke={name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=ge(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach(function(t){t.addEventListener(\"scroll\",i.update,Ve)}),a&&l.addEventListener(\"resize\",i.update,Ve),function(){o&&c.forEach(function(t){t.removeEventListener(\"scroll\",i.update,Ve)}),a&&l.removeEventListener(\"resize\",i.update,Ve)}},data:{}};var Qe={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function Xe(t){return t.replace(/left|right|bottom|top/g,function(t){return Qe[t]})}var Ye={start:\"end\",end:\"start\"};function Ue(t){return t.replace(/start|end/g,function(t){return Ye[t]})}function Ge(t){var e=ge(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Je(t){return xe($e(t)).left+Ge(t).scrollLeft}function Ze(t){var e=Se(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ti(t){return[\"html\",\"body\",\"#document\"].indexOf(me(t))>=0?t.ownerDocument.body:be(t)&&Ze(t)?t:ti(Ie(t))}function ei(t,e){var i;void 0===e&&(e=[]);var n=ti(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=ge(n),r=s?[o].concat(o.visualViewport||[],Ze(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ei(Ie(r)))}function ii(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ni(t,e,i){return e===te?ii(function(t,e){var i=ge(t),n=$e(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Oe();(c||!c&&\"fixed\"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Je(t),y:l}}(t,i)):_e(e)?function(t,e){var i=xe(t,!1,\"fixed\"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):ii(function(t){var e,i=$e(t),n=Ge(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=Ae(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=Ae(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Je(t),l=-n.scrollTop;return\"rtl\"===Se(s||i).direction&&(a+=Ae(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}($e(t)))}function si(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?we(s):null,r=s?Be(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case Vt:e={x:a,y:i.y-n.height};break;case Kt:e={x:a,y:i.y+i.height};break;case Qt:e={x:i.x+i.width,y:l};break;case Xt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?je(o):null;if(null!=c){var h=\"y\"===c?\"height\":\"width\";switch(r){case Gt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Jt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function oi(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Zt:a,c=i.rootBoundary,h=void 0===c?te:c,d=i.elementContext,u=void 0===d?ee:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Fe(\"number\"!=typeof g?g:He(g,Ut)),b=u===ee?ie:ee,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s=\"clippingParents\"===e?function(t){var e=ei(Ie(t)),i=[\"absolute\",\"fixed\"].indexOf(Se(t).position)>=0&&be(t)?Pe(t):t;return _e(i)?e.filter(function(t){return _e(t)&&Le(t,i)&&\"body\"!==me(t)}):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce(function(e,i){var s=ni(t,i,n);return e.top=Ae(s.top,e.top),e.right=Ee(s.right,e.right),e.bottom=Ee(s.bottom,e.bottom),e.left=Ae(s.left,e.left),e},ni(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(_e(y)?y:y.contextElement||$e(t.elements.popper),l,h,r),A=xe(t.elements.reference),E=si({reference:A,element:v,placement:s}),T=ii(Object.assign({},v,E)),C=u===ee?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===ee&&x){var k=x[s];Object.keys(O).forEach(function(t){var e=[Qt,Kt].indexOf(t)>=0?1:-1,i=[Vt,Kt].indexOf(t)>=0?\"y\":\"x\";O[t]+=k[i]*e})}return O}function ri(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?se:l,h=Be(n),d=h?a?ne:ne.filter(function(t){return Be(t)===h}):Ut,u=d.filter(function(t){return c.indexOf(t)>=0});0===u.length&&(u=d);var f=u.reduce(function(e,i){return e[i]=oi(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[we(i)],e},{});return Object.keys(f).sort(function(t,e){return f[t]-f[e]})}const ai={name:\"flip\",enabled:!0,phase:\"main\",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=we(g),b=l||(_!==g&&p?function(t){if(we(t)===Yt)return[];var e=Xe(t);return[Ue(t),e,Ue(e)]}(g):[Xe(g)]),v=[g].concat(b).reduce(function(t,i){return t.concat(we(i)===Yt?ri(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)},[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=we(O),k=Be(O)===Gt,L=[Vt,Kt].indexOf(x)>=0,S=L?\"width\":\"height\",D=oi(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?Qt:Xt:k?Kt:Vt;y[S]>w[S]&&($=Xe($));var I=Xe($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every(function(t){return t})){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find(function(e){var i=A.get(e);if(i)return i.slice(0,t).every(function(t){return t})});if(e)return T=e,\"break\"},j=p?3:1;j>0&&\"break\"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}};function li(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ci(t){return[Vt,Qt,Kt,Xt].some(function(e){return t[e]>=0})}const hi={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=oi(e,{elementContext:\"reference\"}),a=oi(e,{altBoundary:!0}),l=li(r,n),c=li(a,s,o),h=ci(l),d=ci(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-reference-hidden\":h,\"data-popper-escaped\":d})}},di={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=se.reduce(function(t,i){return t[i]=function(t,e,i){var n=we(t),s=[Xt,Vt].indexOf(n)>=0?-1:1,o=\"function\"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Xt,Qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t},{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ui={name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=si({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})},data:{}},fi={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=oi(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=we(e.placement),b=Be(e.placement),v=!b,y=je(_),w=\"x\"===y?\"y\":\"x\",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C=\"function\"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O=\"number\"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S=\"y\"===y?Vt:Xt,D=\"y\"===y?Kt:Qt,$=\"y\"===y?\"height\":\"width\",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Gt?E[$]:T[$],F=b===Gt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?ke(H):{width:0,height:0},B=e.modifiersData[\"arrow#persistent\"]?e.modifiersData[\"arrow#persistent\"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Me(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&Pe(e.elements.arrow),X=Q?\"y\"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Me(f?Ee(N,I+V-Y-X):N,I,f?Ae(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z=\"x\"===y?Vt:Xt,tt=\"x\"===y?Kt:Qt,et=A[w],it=\"y\"===w?\"height\":\"width\",nt=et+g[Z],st=et-g[tt],ot=-1!==[Vt,Xt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Me(t,e,i);return n>i?i:n}(at,et,lt):Me(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:[\"offset\"]};function pi(t,e,i){void 0===i&&(i=!1);var n,s,o=be(e),r=be(e)&&function(t){var e=t.getBoundingClientRect(),i=Te(e.width)/t.offsetWidth||1,n=Te(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=$e(e),l=xe(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&((\"body\"!==me(e)||Ze(a))&&(c=(n=e)!==ge(n)&&be(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Ge(n)),be(e)?((h=xe(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Je(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function mi(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach(function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}}),n.push(t)}return t.forEach(function(t){e.set(t.name,t)}),t.forEach(function(t){i.has(t.name)||s(t)}),n}var gi={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function _i(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some(function(t){return!(t&&\"function\"==typeof t.getBoundingClientRect)})}function bi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?gi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},gi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s=\"function\"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:_e(t)?ei(t):t.contextElement?ei(t.contextElement):[],popper:ei(e)};var r,c,u=function(t){var e=mi(t);return pe.reduce(function(t,i){return t.concat(e.filter(function(t){return t.phase===i}))},[])}((r=[].concat(n,a.options.modifiers),c=r.reduce(function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t},{}),Object.keys(c).map(function(t){return c[t]})));return a.orderedModifiers=u.filter(function(t){return t.enabled}),a.orderedModifiers.forEach(function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if(\"function\"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}}),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(_i(e,i)){a.rects={reference:pi(e,Pe(i),\"fixed\"===a.options.strategy),popper:ke(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach(function(t){return a.modifiersData[t.name]=Object.assign({},t.data)});for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;\"function\"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise(function(t){h.forceUpdate(),t(a)})},function(){return r||(r=new Promise(function(t){Promise.resolve().then(function(){r=void 0,t(s())})})),r}),destroy:function(){d(),c=!0}};if(!_i(t,e))return h;function d(){l.forEach(function(t){return t()}),l=[]}return h.setOptions(i).then(function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)}),h}}var vi=bi(),yi=bi({defaultModifiers:[Ke,ui,qe,ye]}),wi=bi({defaultModifiers:[Ke,ui,qe,ye,di,ai,fi,We,hi]});const Ai=Object.freeze(Object.defineProperty({__proto__:null,afterMain:he,afterRead:ae,afterWrite:fe,applyStyles:ye,arrow:We,auto:Yt,basePlacements:Ut,beforeMain:le,beforeRead:oe,beforeWrite:de,bottom:Kt,clippingParents:Zt,computeStyles:qe,createPopper:wi,createPopperBase:vi,createPopperLite:yi,detectOverflow:oi,end:Jt,eventListeners:Ke,flip:ai,hide:hi,left:Xt,main:ce,modifierPhases:pe,offset:di,placements:se,popper:ee,popperGenerator:bi,popperOffsets:ui,preventOverflow:fi,read:re,reference:ie,right:Qt,start:Gt,top:Vt,variationPlacements:ne,viewport:te,write:ue},Symbol.toStringTag,{value:\"Module\"})),Ei=\"dropdown\",Ti=\".bs.dropdown\",Ci=\".data-api\",Oi=\"ArrowUp\",xi=\"ArrowDown\",ki=`hide${Ti}`,Li=`hidden${Ti}`,Si=`show${Ti}`,Di=`shown${Ti}`,$i=`click${Ti}${Ci}`,Ii=`keydown${Ti}${Ci}`,Ni=`keyup${Ti}${Ci}`,Pi=\"show\",ji='[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)',Mi=`${ji}.${Pi}`,Fi=\".dropdown-menu\",Hi=m()?\"top-end\":\"top-start\",Wi=m()?\"top-start\":\"top-end\",Bi=m()?\"bottom-end\":\"bottom-start\",zi=m()?\"bottom-start\":\"bottom-end\",Ri=m()?\"left-start\":\"right-start\",qi=m()?\"right-start\":\"left-start\",Vi={autoClose:!0,boundary:\"clippingParents\",display:\"dynamic\",offset:[0,2],popperConfig:null,reference:\"toggle\"},Ki={autoClose:\"(boolean|string)\",boundary:\"(string|element)\",display:\"string\",offset:\"(array|string|function)\",popperConfig:\"(null|object|function)\",reference:\"(string|element|object)\"};class Qi extends B{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=R.next(this._element,Fi)[0]||R.prev(this._element,Fi)[0]||R.findOne(Fi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Vi}static get DefaultType(){return Ki}static get NAME(){return Ei}toggle(){return this._isShown()?this.hide():this.show()}show(){if(c(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!P.trigger(this._element,Si,t).defaultPrevented){if(this._createPopper(),\"ontouchstart\"in document.documentElement&&!this._parent.closest(\".navbar-nav\"))for(const t of[].concat(...document.body.children))P.on(t,\"mouseover\",d);this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add(Pi),this._element.classList.add(Pi),P.trigger(this._element,Di,t)}}hide(){if(c(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!P.trigger(this._element,ki,t).defaultPrevented){if(\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,\"mouseover\",d);this._popper&&this._popper.destroy(),this._menu.classList.remove(Pi),this._element.classList.remove(Pi),this._element.setAttribute(\"aria-expanded\",\"false\"),H.removeDataAttribute(this._menu,\"popper\"),P.trigger(this._element,Li,t)}}_getConfig(t){if(\"object\"==typeof(t=super._getConfig(t)).reference&&!r(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ei.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(){if(void 0===Ai)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)\");let t=this._element;\"parent\"===this._config.reference?t=this._parent:r(this._config.reference)?t=a(this._config.reference):\"object\"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=wi(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Pi)}_getPlacement(){const t=this._parent;if(t.classList.contains(\"dropend\"))return Ri;if(t.classList.contains(\"dropstart\"))return qi;if(t.classList.contains(\"dropup-center\"))return\"top\";if(t.classList.contains(\"dropdown-center\"))return\"bottom\";const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?Wi:Hi:e?zi:Bi}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map(t=>Number.parseInt(t,10)):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return(this._inNavbar||\"static\"===this._config.display)&&(H.setDataAttribute(this._menu,\"popper\",\"static\"),t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,..._(this._config.popperConfig,[void 0,t])}}_selectMenuItem({key:t,target:e}){const i=R.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter(t=>l(t));i.length&&v(i,e,t===xi,!i.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=Qi.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}})}static clearMenus(t){if(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key)return;const e=R.find(Mi);for(const i of e){const e=Qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||\"inside\"===e._config.autoClose&&!s||\"outside\"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&(\"keyup\"===t.type&&\"Tab\"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};\"click\"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i=\"Escape\"===t.key,n=[Oi,xi].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(ji)?this:R.prev(this,ji)[0]||R.next(this,ji)[0]||R.findOne(ji,t.delegateTarget.parentNode),o=Qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}P.on(document,Ii,ji,Qi.dataApiKeydownHandler),P.on(document,Ii,Fi,Qi.dataApiKeydownHandler),P.on(document,$i,Qi.clearMenus),P.on(document,Ni,Qi.clearMenus),P.on(document,$i,ji,function(t){t.preventDefault(),Qi.getOrCreateInstance(this).toggle()}),g(Qi);const Xi=\"backdrop\",Yi=\"show\",Ui=`mousedown.bs.${Xi}`,Gi={className:\"modal-backdrop\",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:\"body\"},Ji={className:\"string\",clickCallback:\"(function|null)\",isAnimated:\"boolean\",isVisible:\"boolean\",rootElement:\"(element|string)\"};class Zi extends W{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Gi}static get DefaultType(){return Ji}static get NAME(){return Xi}show(t){if(!this._config.isVisible)return void _(t);this._append();const e=this._getElement();this._config.isAnimated&&u(e),e.classList.add(Yi),this._emulateAnimation(()=>{_(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove(Yi),this._emulateAnimation(()=>{this.dispose(),_(t)})):_(t)}dispose(){this._isAppended&&(P.off(this._element,Ui),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=a(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),P.on(t,Ui,()=>{_(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const tn=\".bs.focustrap\",en=`focusin${tn}`,nn=`keydown.tab${tn}`,sn=\"backward\",on={autofocus:!0,trapElement:null},rn={autofocus:\"boolean\",trapElement:\"element\"};class an extends W{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return on}static get DefaultType(){return rn}static get NAME(){return\"focustrap\"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),P.off(document,tn),P.on(document,en,t=>this._handleFocusin(t)),P.on(document,nn,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,P.off(document,tn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=R.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===sn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?sn:\"forward\")}}const ln=\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",cn=\".sticky-top\",hn=\"padding-right\",dn=\"margin-right\";class un{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,hn,e=>e+t),this._setElementAttributes(ln,hn,e=>e+t),this._setElementAttributes(cn,dn,e=>e-t)}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,hn),this._resetElementAttributes(ln,hn),this._resetElementAttributes(cn,dn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)})}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&H.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=H.getDataAttribute(t,e);null!==i?(H.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(r(t))e(t);else for(const i of R.find(t,this._element))e(i)}}const fn=\".bs.modal\",pn=`hide${fn}`,mn=`hidePrevented${fn}`,gn=`hidden${fn}`,_n=`show${fn}`,bn=`shown${fn}`,vn=`resize${fn}`,yn=`click.dismiss${fn}`,wn=`mousedown.dismiss${fn}`,An=`keydown.dismiss${fn}`,En=`click${fn}.data-api`,Tn=\"modal-open\",Cn=\"show\",On=\"modal-static\",xn={backdrop:!0,focus:!0,keyboard:!0},kn={backdrop:\"(boolean|string)\",focus:\"boolean\",keyboard:\"boolean\"};class Ln extends B{constructor(t,e){super(t,e),this._dialog=R.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new un,this._addEventListeners()}static get Default(){return xn}static get DefaultType(){return kn}static get NAME(){return\"modal\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,_n,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Tn),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){this._isShown&&!this._isTransitioning&&(P.trigger(this._element,pn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Cn),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){P.off(window,fn),P.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new an({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0;const e=R.findOne(\".modal-body\",this._dialog);e&&(e.scrollTop=0),u(this._element),this._element.classList.add(Cn),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,P.trigger(this._element,bn,{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){P.on(this._element,An,t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),P.on(window,vn,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),P.on(this._element,wn,t=>{P.one(this._element,yn,e=>{this._element===t.target&&this._element===e.target&&(\"static\"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Tn),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,gn)})}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if(P.trigger(this._element,mn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;\"hidden\"===e||this._element.classList.contains(On)||(t||(this._element.style.overflowY=\"hidden\"),this._element.classList.add(On),this._queueCallback(()=>{this._element.classList.remove(On),this._queueCallback(()=>{this._element.style.overflowY=e},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=m()?\"paddingLeft\":\"paddingRight\";this._element.style[t]=`${e}px`}if(!i&&t){const t=m()?\"paddingRight\":\"paddingLeft\";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each(function(){const i=Ln.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}})}}P.on(document,En,'[data-bs-toggle=\"modal\"]',function(t){const e=R.getElementFromSelector(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),P.one(e,_n,t=>{t.defaultPrevented||P.one(e,gn,()=>{l(this)&&this.focus()})});const i=R.findOne(\".modal.show\");i&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(e).toggle(this)}),q(Ln),g(Ln);const Sn=\".bs.offcanvas\",Dn=\".data-api\",$n=`load${Sn}${Dn}`,In=\"show\",Nn=\"showing\",Pn=\"hiding\",jn=\".offcanvas.show\",Mn=`show${Sn}`,Fn=`shown${Sn}`,Hn=`hide${Sn}`,Wn=`hidePrevented${Sn}`,Bn=`hidden${Sn}`,zn=`resize${Sn}`,Rn=`click${Sn}${Dn}`,qn=`keydown.dismiss${Sn}`,Vn={backdrop:!0,keyboard:!0,scroll:!1},Kn={backdrop:\"(boolean|string)\",keyboard:\"boolean\",scroll:\"boolean\"};class Qn extends B{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Vn}static get DefaultType(){return Kn}static get NAME(){return\"offcanvas\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,Mn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new un).hide(),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(Nn),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(In),this._element.classList.remove(Nn),P.trigger(this._element,Fn,{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,Hn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Pn),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove(In,Pn),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._config.scroll||(new un).reset(),P.trigger(this._element,Bn)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Zi({className:\"offcanvas-backdrop\",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{\"static\"!==this._config.backdrop?this.hide():P.trigger(this._element,Wn)}:null})}_initializeFocusTrap(){return new an({trapElement:this._element})}_addEventListeners(){P.on(this._element,qn,t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():P.trigger(this._element,Wn))})}static jQueryInterface(t){return this.each(function(){const e=Qn.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}})}}P.on(document,Rn,'[data-bs-toggle=\"offcanvas\"]',function(t){const e=R.getElementFromSelector(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),c(this))return;P.one(e,Bn,()=>{l(this)&&this.focus()});const i=R.findOne(jn);i&&i!==e&&Qn.getInstance(i).hide(),Qn.getOrCreateInstance(e).toggle(this)}),P.on(window,$n,()=>{for(const t of R.find(jn))Qn.getOrCreateInstance(t).show()}),P.on(window,zn,()=>{for(const t of R.find(\"[aria-modal][class*=show][class*=offcanvas-]\"))\"fixed\"!==getComputedStyle(t).position&&Qn.getOrCreateInstance(t).hide()}),q(Qn),g(Qn);const Xn={\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Yn=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),Un=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Gn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Yn.has(i)||Boolean(Un.test(t.nodeValue)):e.filter(t=>t instanceof RegExp).some(t=>t.test(i))},Jn={allowList:Xn,content:{},extraClass:\"\",html:!1,sanitize:!0,sanitizeFn:null,template:\"<div></div>\"},Zn={allowList:\"object\",content:\"object\",extraClass:\"(string|function)\",html:\"boolean\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",template:\"string\"},ts={entry:\"(string|element|function|null)\",selector:\"(string|element)\"};class es extends W{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jn}static get DefaultType(){return Zn}static get NAME(){return\"TemplateFactory\"}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement(\"div\");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(\" \")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},ts)}_setContent(t,e,i){const n=R.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?r(e)?this._putElementInTemplate(a(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&\"function\"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,\"text/html\"),s=[].concat(...n.body.querySelectorAll(\"*\"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e[\"*\"]||[],e[i]||[]);for(const e of n)Gn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return _(t,[void 0,this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML=\"\",void e.append(t);e.textContent=t.textContent}}const is=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),ns=\"fade\",ss=\"show\",os=\".tooltip-inner\",rs=\".modal\",as=\"hide.bs.modal\",ls=\"hover\",cs=\"focus\",hs=\"click\",ds={AUTO:\"auto\",TOP:\"top\",RIGHT:m()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:m()?\"right\":\"left\"},us={allowList:Xn,animation:!0,boundary:\"clippingParents\",container:!1,customClass:\"\",delay:0,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],html:!1,offset:[0,6],placement:\"top\",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',title:\"\",trigger:\"hover focus\"},fs={allowList:\"object\",animation:\"boolean\",boundary:\"(string|element)\",container:\"(string|element|boolean)\",customClass:\"(string|function)\",delay:\"(number|object)\",fallbackPlacements:\"array\",html:\"boolean\",offset:\"(array|string|function)\",placement:\"(string|function)\",popperConfig:\"(null|object|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",selector:\"(string|boolean)\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\"};class ps extends B{constructor(t,e){if(void 0===Ai)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)\");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return us}static get DefaultType(){return fs}static get NAME(){return\"tooltip\"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(rs),as,this._hideModalHandler),this._element.getAttribute(\"data-bs-original-title\")&&this._element.setAttribute(\"title\",this._element.getAttribute(\"data-bs-original-title\")),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this._isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.eventName(\"show\")),e=(h(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute(\"aria-describedby\",i.getAttribute(\"id\"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),P.trigger(this._element,this.constructor.eventName(\"inserted\"))),this._popper=this._createPopper(i),i.classList.add(ss),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))P.on(t,\"mouseover\",d);this._queueCallback(()=>{P.trigger(this._element,this.constructor.eventName(\"shown\")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!P.trigger(this._element,this.constructor.eventName(\"hide\")).defaultPrevented){if(this._getTipElement().classList.remove(ss),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,\"mouseover\",d);this._activeTrigger[hs]=!1,this._activeTrigger[cs]=!1,this._activeTrigger[ls]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(\"aria-describedby\"),P.trigger(this._element,this.constructor.eventName(\"hidden\")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ns,ss),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute(\"id\",i),this._isAnimated()&&e.classList.add(ns),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new es({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[os]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(\"data-bs-original-title\")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(ss)}_createPopper(t){const e=_(this._config.placement,[this,t,this._element]),i=ds[e.toUpperCase()];return wi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map(t=>Number.parseInt(t,10)):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return _(t,[this._element,this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"preSetPlacement\",enabled:!0,phase:\"beforeMain\",fn:t=>{this._getTipElement().setAttribute(\"data-popper-placement\",t.state.placement)}}]};return{...e,..._(this._config.popperConfig,[void 0,e])}}_setListeners(){const t=this._config.trigger.split(\" \");for(const e of t)if(\"click\"===e)P.on(this._element,this.constructor.eventName(\"click\"),this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[hs]=!(e._isShown()&&e._activeTrigger[hs]),e.toggle()});else if(\"manual\"!==e){const t=e===ls?this.constructor.eventName(\"mouseenter\"):this.constructor.eventName(\"focusin\"),i=e===ls?this.constructor.eventName(\"mouseleave\"):this.constructor.eventName(\"focusout\");P.on(this._element,t,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusin\"===t.type?cs:ls]=!0,e._enter()}),P.on(this._element,i,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusout\"===t.type?cs:ls]=e._element.contains(t.relatedTarget),e._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(rs),as,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute(\"title\");t&&(this._element.getAttribute(\"aria-label\")||this._element.textContent.trim()||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"data-bs-original-title\",t),this._element.removeAttribute(\"title\"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=H.getDataAttributes(this._element);for(const t of Object.keys(e))is.has(t)&&delete e[t];return t={...e,...\"object\"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:a(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger=\"manual\",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each(function(){const e=ps.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}g(ps);const ms=\".popover-header\",gs=\".popover-body\",_s={...ps.Default,content:\"\",offset:[0,8],placement:\"right\",template:'<div class=\"popover\" role=\"tooltip\"><div class=\"popover-arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>',trigger:\"click\"},bs={...ps.DefaultType,content:\"(null|string|element|function)\"};class vs extends ps{static get Default(){return _s}static get DefaultType(){return bs}static get NAME(){return\"popover\"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ms]:this._getTitle(),[gs]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const e=vs.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}g(vs);const ys=\".bs.scrollspy\",ws=`activate${ys}`,As=`click${ys}`,Es=`load${ys}.data-api`,Ts=\"active\",Cs=\"[href]\",Os=\".nav-link\",xs=`${Os}, .nav-item > ${Os}, .list-group-item`,ks={offset:null,rootMargin:\"0px 0px -25%\",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Ls={offset:\"(number|null)\",rootMargin:\"string\",smoothScroll:\"boolean\",target:\"element\",threshold:\"array\"};class Ss extends B{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=\"visible\"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ks}static get DefaultType(){return Ls}static get NAME(){return\"scrollspy\"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=a(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,\"string\"==typeof t.threshold&&(t.threshold=t.threshold.split(\",\").map(t=>Number.parseFloat(t))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(P.off(this._config.target,As),P.on(this._config.target,As,Cs,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:\"smooth\"});i.scrollTop=n}}))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(t=>this._observerCallback(t),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=R.find(Cs,this._config.target);for(const e of t){if(!e.hash||c(e))continue;const t=R.findOne(decodeURI(e.hash),this._element);l(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Ts),this._activateParents(t),P.trigger(this._element,ws,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(\"dropdown-item\"))R.findOne(\".dropdown-toggle\",t.closest(\".dropdown\")).classList.add(Ts);else for(const e of R.parents(t,\".nav, .list-group\"))for(const t of R.prev(e,xs))t.classList.add(Ts)}_clearActiveClass(t){t.classList.remove(Ts);const e=R.find(`${Cs}.${Ts}`,t);for(const t of e)t.classList.remove(Ts)}static jQueryInterface(t){return this.each(function(){const e=Ss.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}P.on(window,Es,()=>{for(const t of R.find('[data-bs-spy=\"scroll\"]'))Ss.getOrCreateInstance(t)}),g(Ss);const Ds=\".bs.tab\",$s=`hide${Ds}`,Is=`hidden${Ds}`,Ns=`show${Ds}`,Ps=`shown${Ds}`,js=`click${Ds}`,Ms=`keydown${Ds}`,Fs=`load${Ds}`,Hs=\"ArrowLeft\",Ws=\"ArrowRight\",Bs=\"ArrowUp\",zs=\"ArrowDown\",Rs=\"Home\",qs=\"End\",Vs=\"active\",Ks=\"fade\",Qs=\"show\",Xs=\".dropdown-toggle\",Ys=`:not(${Xs})`,Us='[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',Gs=`.nav-link${Ys}, .list-group-item${Ys}, [role=\"tab\"]${Ys}, ${Us}`,Js=`.${Vs}[data-bs-toggle=\"tab\"], .${Vs}[data-bs-toggle=\"pill\"], .${Vs}[data-bs-toggle=\"list\"]`;class Zs extends B{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role=\"tablist\"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),P.on(this._element,Ms,t=>this._keydown(t)))}static get NAME(){return\"tab\"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?P.trigger(e,$s,{relatedTarget:t}):null;P.trigger(t,Ns,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Vs),this._activate(R.getElementFromSelector(t)),this._queueCallback(()=>{\"tab\"===t.getAttribute(\"role\")?(t.removeAttribute(\"tabindex\"),t.setAttribute(\"aria-selected\",!0),this._toggleDropDown(t,!0),P.trigger(t,Ps,{relatedTarget:e})):t.classList.add(Qs)},t,t.classList.contains(Ks)))}_deactivate(t,e){t&&(t.classList.remove(Vs),t.blur(),this._deactivate(R.getElementFromSelector(t)),this._queueCallback(()=>{\"tab\"===t.getAttribute(\"role\")?(t.setAttribute(\"aria-selected\",!1),t.setAttribute(\"tabindex\",\"-1\"),this._toggleDropDown(t,!1),P.trigger(t,Is,{relatedTarget:e})):t.classList.remove(Qs)},t,t.classList.contains(Ks)))}_keydown(t){if(![Hs,Ws,Bs,zs,Rs,qs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter(t=>!c(t));let i;if([Rs,qs].includes(t.key))i=e[t.key===Rs?0:e.length-1];else{const n=[Ws,zs].includes(t.key);i=v(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Zs.getOrCreateInstance(i).show())}_getChildren(){return R.find(Gs,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,\"role\",\"tablist\");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute(\"aria-selected\",e),i!==t&&this._setAttributeIfNotExists(i,\"role\",\"presentation\"),e||t.setAttribute(\"tabindex\",\"-1\"),this._setAttributeIfNotExists(t,\"role\",\"tab\"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=R.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,\"role\",\"tabpanel\"),t.id&&this._setAttributeIfNotExists(e,\"aria-labelledby\",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains(\"dropdown\"))return;const n=(t,n)=>{const s=R.findOne(t,i);s&&s.classList.toggle(n,e)};n(Xs,Vs),n(\".dropdown-menu\",Qs),i.setAttribute(\"aria-expanded\",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Vs)}_getInnerElement(t){return t.matches(Gs)?t:R.findOne(Gs,t)}_getOuterElement(t){return t.closest(\".nav-item, .list-group-item\")||t}static jQueryInterface(t){return this.each(function(){const e=Zs.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}P.on(document,js,Us,function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),c(this)||Zs.getOrCreateInstance(this).show()}),P.on(window,Fs,()=>{for(const t of R.find(Js))Zs.getOrCreateInstance(t)}),g(Zs);const to=\".bs.toast\",eo=`mouseover${to}`,io=`mouseout${to}`,no=`focusin${to}`,so=`focusout${to}`,oo=`hide${to}`,ro=`hidden${to}`,ao=`show${to}`,lo=`shown${to}`,co=\"hide\",ho=\"show\",uo=\"showing\",fo={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},po={animation:!0,autohide:!0,delay:5e3};class mo extends B{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return po}static get DefaultType(){return fo}static get NAME(){return\"toast\"}show(){P.trigger(this._element,ao).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(co),u(this._element),this._element.classList.add(ho,uo),this._queueCallback(()=>{this._element.classList.remove(uo),P.trigger(this._element,lo),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(P.trigger(this._element,oo).defaultPrevented||(this._element.classList.add(uo),this._queueCallback(()=>{this._element.classList.add(co),this._element.classList.remove(uo,ho),P.trigger(this._element,ro)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ho),super.dispose()}isShown(){return this._element.classList.contains(ho)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,eo,t=>this._onInteraction(t,!0)),P.on(this._element,io,t=>this._onInteraction(t,!1)),P.on(this._element,no,t=>this._onInteraction(t,!0)),P.on(this._element,so,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=mo.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}})}}return q(mo),g(mo),{Alert:X,Button:U,Carousel:St,Collapse:qt,Dropdown:Qi,Modal:Ln,Offcanvas:Qn,Popover:vs,ScrollSpy:Ss,Tab:Zs,Toast:mo,Tooltip:ps}});\n//# sourceMappingURL=bootstrap.bundle.min.js.map","import bootstrap from 'bootstrap/dist/js/bootstrap.bundle.min'\n\n// -----------------------------------------------------------------------------\n// --- html/dom/browser --------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Scroll to the given HTML ID.\n *\n * @param {String} id ID to scroll to.\n * @param {boolean} smooth. Optional smooth scrolling, default to yes.\n */\nexport function clScrollToId (id, smooth = true) {\n const element = document.getElementById(id)\n\n // open corresponding tab if ID is in there\n let tab = element?.parentElement\n while (tab) {\n // detect tab by our tab class name\n const clazz = (tab.getAttribute('class') ?? '').match(/cl-tab-[0-9]+/)\n if (clazz) {\n // find radio box that belongs to that tab + enable it\n const radio = document.querySelector(`input.${clazz}`)\n if (radio) {\n radio.checked = true\n break\n }\n }\n tab = tab.parentElement\n }\n\n // delay click one tick to give page time to update\n setTimeout(() => {\n if (smooth) {\n element?.scrollIntoView({ behavior: 'smooth' })\n } else {\n element?.scrollIntoView()\n }\n }, 0)\n}\n\nexport function setDomainCookieJson (name, value, maxAge = 60 * 60 * 24 * (365 + 30)) {\n const b64 = btoa(JSON.stringify(value))\n document.cookie = `${name}=${b64}; max-age=${maxAge}; domain=${getDomain()}; path=/; SameSite=Lax;`\n}\n\nexport function getDomainCookieJson (name) {\n for (const cookie of document?.cookie?.split(/; */) ?? []) {\n const [key, value] = cookie.split('=')\n if (key === name) {\n try {\n return JSON.parse(atob(value))\n } catch (e) {\n e.ignore?.() // ignore reason\n return {}\n }\n }\n }\n return {}\n}\n\nfunction getDomain () {\n const hostname = window.location.hostname ?? 'unknown'\n if (hostname.match(/^[0-9]+.[0-9]+.[0-9]+.[0-9]+$/)) {\n // IP domain\n return hostname\n }\n const parts = hostname.split('.').reverse()\n if (parts.length > 1) {\n // regular multi-part domain name\n return `.${parts[1]}.${parts[0]}`\n } else {\n // single-name domain like 'localhost'\n return parts[0]\n }\n}\n\n// -----------------------------------------------------------------------------\n// --- modals ------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\nlet modal = null // the open modal (if any)\n\n/**\n * Hide a bootstrap modal via it's ID.\n *\n * Will hide it but not delete the DOM elements.\n *\n * @param {string} id ID of modal.\n */\nexport function clModalHide () {\n modal?.hide()\n modal = null\n}\n\n/**\n * Show a bootstrap modal via it's ID.\n *\n * Will also auto-focus the first autofocus field.\n *\n * @param {string} id ID of modal.\n * @param {object} value Optional value to store on the modal.\n */\nexport function clModalShow (id, value) {\n clModalHide()\n\n // find & show the modal\n const element = document.getElementById(id)\n if (element) {\n modal = new bootstrap.Modal(element, { backdrop: 'static' })\n modal.value = value\n modal.id = id\n modal.show()\n\n // focus the first auto-focus field in the Modal\n const autofocus = document.querySelector(`#${id} [autofocus]`)\n if (autofocus) autofocus.focus()\n }\n}\n\n/**\n * Retrieve an optional value/data object stored in the modal.\n *\n * @param {string} id ID of modal.\n * @return {object} Stored object or undefined.\n */\nexport function clModalValue (id) {\n return bootstrap.Modal.getInstance(document.getElementById(id))?.value\n}\n\n/**\n * Determine if a modal is open.\n *\n * @return {Boolean} True if a modal is currently open.\n */\nexport function clModalIsShown (modalId) {\n if (!modal) return false\n if (!modalId) return modal._isShown\n return modal.id === modalId && modal._isShown\n}\n\n/**\n * Handle navigation events for modals. Back closes modal.\n *\n * @param to Vue's to-route.\n * @returns True if a modal was closed instead of navigating away.\n */\nexport function clModalBack (to) {\n if (clModalIsShown()) {\n clModalHide()\n if (to.meta?.ignoreModal) {\n return false\n }\n return true\n }\n return false\n}\n\n// -----------------------------------------------------------------------------\n// --- paginator ---------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Cut a data array in pages and fetch a given page for ClPagination.\n *\n * @param {Array} array Array to split. If undefined considered to be empty.\n * @param {Number} pageNo Zero-based page, defaults to 0.\n * @param {Number} pageSize Page size, defaults to 25.\n * @return {Array} Requested page as array, or empty array if page does not exist.\n */\nexport function clPaginate (array, pageNo = 0, pageSize = 25) {\n return array?.slice(pageNo * pageSize, pageNo * pageSize + pageSize) ?? []\n}\n\n// -----------------------------------------------------------------------------\n// --- forms -------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Focus an HTML element\n *\n * @param {String} selector What to focus. Best used as id like '#thisElement'.\n */\nexport function clFocus (selector = '#invalid') {\n document.querySelector(selector)?.focus()\n}\n\n/**\n * Reset a form.\n *\n * Called before (re)showing forms. Will do:\n * - set autofocus\n * - set (optional) $refs of ClField* to valid\n *\n * @param {String} id HTML ID of form to reset.\n * @param {Array} fields Optional array of $refs to ClFields.\n */\nexport function clFormReset (id, fields = []) {\n for (const field of fields) {\n field.valid = true\n }\n // autofocus first autofocus-field\n const autofocus = document.querySelector(`#${id} [autofocus]`)\n autofocus?.focus()\n}\n\n/**\n * Resets a form field to the previous value and removes appended validation classes.\n *\n * @param {ref} ref a form field object refference\n * @param {Any} oldValue a value that needs to be reassigned\n */\nexport function clFormFieldReset (ref, oldValue) {\n if (ref) {\n ref.modelValue = oldValue\n ref.valid = true\n }\n}\n\n/**\n * Check if any of the inputs in a form are invalid.\n *\n * Will autofocus the first wrong input (if any).\n *\n * @param {string} id ID of form.\n * @return {boolean} True if form is OK.\n */\nexport function clFormIsValid (id) {\n const form = document.querySelector(`#${id}`)\n if (!form) {\n // not a form at all\n console.error('can’t find/validate form', id)\n return false\n }\n\n // force trigger validation\n // as some inputs like the ace editor do custom validation based on events,\n // we fire various event/element/class combinations to make sure custom handlers run.\n document.querySelectorAll(`#${id} input, #${id} .form-control`).forEach(input => {\n input.focus()\n input.blur()\n })\n\n if (\n form.checkValidity() === false ||\n document.querySelector(`#${id} :invalid, #${id} .invalid`)\n ) {\n clFormFieldFocusFirstInvalid(id)\n return false\n }\n\n return true\n}\n\n/**\n * Async version of clFormIsValid.\n *\n * Useful for complicated inputs like ACE editor.\n *\n * @param {string} id ID of form.\n * @return {boolean} Promise of true if form is OK.\n */\nexport async function clFormIsValidAsync (id) {\n const form = document.getElementById(id)\n if (!form) {\n // not a form at all\n console.error('can’t find/validate form', id)\n return Promise.resolve(false)\n }\n\n // force trigger validation\n // as some inputs like the ace editor do custom validation based on events,\n // we fire various event/element/class combinations to make sure custom handlers run.\n document.querySelectorAll(`#${id} input, #${id} .form-control`).forEach(input => {\n input.focus()\n input.blur()\n })\n document.querySelectorAll(`#${id} .ace_editor`).forEach(input => {\n input.click()\n })\n\n // give JS engine one tick time to update all invalid classes\n return new Promise(resolve =>\n setTimeout(() => {\n if (\n form.checkValidity() === false ||\n document.querySelector(`#${id} :invalid, #${id} .invalid`)\n ) {\n clFormFieldFocusFirstInvalid(id)\n resolve(false)\n return\n }\n resolve(true)\n })\n )\n}\n\n/**\n * Set the focus in the first autofocus field of the given form (if any).\n *\n * Usually to be called in Vue's mounted() method.\n *\n * @param {string} formId HTML ID of form.\n */\nexport function clFormAutofocus (formId) {\n const invalid = document.querySelector(`#${formId} [autofocus]`)\n invalid?.focus()\n}\n\n/**\n * Set the focus in the first invalid field of the given form (if any).\n *\n * @param {string} formId HTML ID of form.\n */\nexport function clFormFieldFocusFirstInvalid (formId) {\n const invalid = document.querySelector(`#${formId} :invalid, #${formId} .invalid`)\n invalid?.focus()\n}\n\n// -----------------------------------------------------------------------------\n// --- formatters --------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Convert bytes into human-readable format.\n *\n * @param {Number} bytes Bytes to format, e.g. 1212345678.\n * @return {String} Formatted size, e.g. '12MB'.\n */\nexport function clFormatFilesize (bytes) {\n if (bytes < 1024) return `${bytes}B`\n if (bytes < 1024 * 1024) return `${Math.floor(bytes / 1024)}kB`\n if (bytes < 1024 * 1024 * 1024) return `${Math.floor(bytes / 1024 / 1024)}MB`\n return `${Math.floor(bytes / 1024 / 1024 / 1024)}GB`\n}\n\n/**\n * Format an UTC date into our UI version.\n *\n * @param {Date} date Date to format.\n * @return {string} Formatted date, e.g. '01 Aug 2021'.\n */\nexport function clFormatDateUTC (date) {\n // we use toISOString() to discard timezone information in date object\n const [yyyy, mm, dd] = date.toISOString().split(/[-T:.Z]/)\n const mmm = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][\n mm - 1\n ]\n return `${dd} ${mmm} ${yyyy}`\n}\n\n/**\n * Format a date into our UI version.\n *\n * @deprecated use clFormatDateUTC instead to avoid unexpected auto-timezone-shifts.\n *\n * @param {Date} date Date to format.\n * @return {string} Formatted date, e.g. '01 Aug 2021'.\n */\nexport function clFormatDate (date) {\n return clFormatDateUTC(date)\n}\n\n/**\n * Format a time into our UI version.\n *\n * @param {Date} date Date to format, assumed to be UTC.\n * @param {boolean} seconds If true, seconds will be appended.\n * @return {string} Formatted date, e.g. '18:21' or '18:21:59' (incl. seconds).\n */\nexport function clFormatTimeUTC (date, seconds = false) {\n // we use toISOString() to discard timezone information in date object\n const utc = date.toISOString().split(/[-T:.Z]/)\n return seconds ? `${utc[3]}:${utc[4]}:${utc[5]}` : `${utc[3]}:${utc[4]}`\n}\n\n/**\n * Format a date and time into our UI version.\n *\n * @param {Date} date Date to format.\n * @param {boolean} seconds If true, seconds will be appended.\n * @return {string} Formatted date, e.g. '01 Aug 2021 18:21' or '01 Aug 2021 18:21:59' (incl. seconds).\n */\nexport function clFormatDateTimeUTC (date, seconds = false) {\n return `${clFormatDateUTC(date)} ${clFormatTimeUTC(date, seconds)}`\n}\n\n/**\n * Format a date and time into a sortable string.\n *\n * @param {Date} date Date to format.\n * @param {boolean} year If true (default), the output will contain a year.\n * @param {boolean} month If true (default), the output will contain a year.\n * @param {boolean} day If true (default), the output will contain a year.\n * @param {boolean} hour If true (default), the output will contain hour.\n * @param {boolean} minute If true (default), the output will contain hours and minutes.\n * @param {boolean} seconds If true (default false), the output will contain seconds.\n * @return {string} Formatted date, e.g. '2021-08-01 18:21'.\n */\nexport function clFormatDateTimeTabularUTC (\n date,\n year = true,\n month = true,\n day = true,\n time = true,\n seconds = false\n) {\n const YYYY = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const MM = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date)\n const DD = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date)\n const [hh, mm, ss] = [\n ('' + date.getUTCHours()).padStart(2, '0'),\n ('' + date.getUTCMinutes()).padStart(2, '0'),\n ('' + date.getUTCSeconds()).padStart(2, '0')\n ]\n\n let result = ''\n if (year) result += ` ${YYYY}`\n if (month) result += `-${MM}`\n if (day) result += `-${DD}`\n if (time) result += ` ${hh}:${mm}`\n if (seconds) result += `:${ss}`\n\n return result.trim()\n}\n\n/**\n * Format the duration between two dates. Format can adapt on scale of duraction (years/weeks, milliseconds, ...)\n *\n * @param {Date} from First, smaller date.\n * @param {Date} until Second, larger date.\n * @param {boolean} seconds If true (default), :seconds will be included.\n * @param {boolean} ms If true (not default), .ms will be included.\n * @return {string} Formatted durtion in hh:mm:ss, e.g. '[02:59:58.456].\n */\nexport function clFormatDuration (from, until, seconds = true, ms = false) {\n let delta = until.getTime() - from.getTime()\n if (ms) {\n delta += 1\n } else if (seconds) {\n delta += 1000\n } else {\n delta += 60 * 1000\n }\n\n const msms = ('' + (delta % 1000)).padStart(3, '0')\n delta = Math.floor(delta / 1000)\n const ss = ('' + (delta % 60)).padStart(2, '0')\n delta = Math.floor(delta / 60)\n const mm = ('' + (delta % 60)).padStart(2, '0')\n delta = Math.floor(delta / 60)\n const hh = ('' + delta).padStart(2, '0')\n\n if (ms) return `${hh}:${mm}:${ss}.${msms}`\n if (seconds) return `${hh}:${mm}:${ss}`\n return `${hh}:${mm}`\n}\n\n/**\n * Format a date period into our UI version.\n *\n * @param {Date} date Date to format.\n * @return {string} Formatted period, e.g. 'Aug 2021'.\n */\nexport function clFormatPeriod (date) {\n const yyyy = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const mmm = new Intl.DateTimeFormat('en', { month: 'short' }).format(date)\n return `${mmm} ${yyyy}`\n}\n\n/**\n * Format a number / value.\n *\n * @param {Number} amount Amount to format, e.g. 12000.\n * @return {Number} Formatted string for UI, e.g. '12,000'.\n */\nexport function clFormatNumber (amount, decimalPlaces = 0) {\n return amount.toLocaleString('en', { minimumFractionDigits: decimalPlaces })\n}\n\n/**\n * Format a currency value.\n *\n * @param {Number} amount Amount (in cent) to format, e.g. 4300.\n * @param {String} currency Currency to attach, e.g. 'EUR'.\n * @param {Number} decimalPlaces Number of decimal places in the amount. Defaults to 2.\n * @return {Number} Formatted amount, e.g. '€ 43.00'.\n */\nexport function clFormatAmount (amount, currency, decimalPlaces = 2) {\n switch (currency) {\n case 'EUR':\n currency = '€'\n break\n case 'USD':\n currency = '$'\n break\n default:\n }\n return `${currency} ${clFormatNumber(amount / 10 ** decimalPlaces, decimalPlaces)}`\n}\n\n/**\n * Format a numeric range.\n *\n * @param {Number} from Value A.\n * @param {Number} to Value B.\n * @return {Number} E.g. '123 - 321'.\n */\nexport function clFormatRange (from, to) {\n return `${clFormatNumber(from)} - ${clFormatNumber(to)}`\n}\n\n/**\n * Formats cardNumber into asterisk obfuscated last 4 digits string\n *\n * @param {String} cardNumber Credit card number with or without spaces.\n * @return {String} String for UI with only least significant digits visible.\n */\nexport function clFormatCardNumber (cardNumber) {\n return `**** **** **** ${cardNumber.replace(/ /g, '').substr(-4)}`\n}\n\n// -----------------------------------------------------------------------------\n// --- validators --------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Make an API call is only made once at a time.\n *\n * Also does some often used glue code for form/submit valid checking.\n *\n * @param {Object} component A vue component that wants to call the API.\n * @param {Object} callback The actuall API call that will return a Result/Error promise.\n * @param {String} id Optional form ID to check befor submitting.\n * @return {Promise<any>} The (wrapped) promise that callback() returned.\n */\nexport function clSynchronizedSubmit (component, callback, id = component.ID_FORM) {\n if (id) {\n if (clFormIsValid(id) && !component.submitting) {\n component.submitting = true\n return callback().finally(() => {\n component.submitting = false\n })\n }\n } else {\n if (!component.submitting) {\n component.submitting = true\n return callback().finally(() => {\n component.submitting = false\n })\n }\n }\n return Promise.resolve()\n}\n\n/**\n * Async version of clSynchronizedSubmit.\n *\n * Useful if form contains async form validation inputs. Requires a form ID to work.\n *\n * @param {Object} component A vue component that wants to call the API.\n * @param {Object} callback The actuall API call that will return a Result/Error promise.\n * @param {String} id Mandatory form ID to check befor submitting.\n * @return {Promise<any>} The (wrapped) promise that callback() returned.\n */\nexport function clSynchronizedSubmitAsync (component, callback, id = component.ID_FORM) {\n if (!component.submitting) {\n return clFormIsValidAsync(id).then(success => {\n if (success) {\n component.submitting = true\n return callback().finally(() => {\n component.submitting = false\n })\n }\n })\n }\n return Promise.resolve()\n}\n\n// -----------------------------------------------------------------------------\n// --- sorting -----------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\nexport function _getProperty (object, property) {\n const path = property.split('.')\n const topProperty = path.shift()\n const o = object[topProperty]\n if ([undefined, null].includes(o)) return o\n if (path.length > 0) {\n return _getProperty(o, path.join('.'))\n } else {\n return o\n }\n}\n\n/**\n * Sort an object array by one of its properties\n *\n * @param {Object[] | Function} original Array or function to sort.\n * @param {String} property Property name of a and b to compare.\n * @param {boolean} caseSensitive If true, compare case insensitive.\n * @return {Object[]} Sorted array.\n */\nexport function clSort (original, property, order = 'ASC', caseSensitive = false) {\n if (!original) return [] // can’t sort null/undefined/...\n const copy = typeof original === 'function' ? [...original()] : [...original]\n\n const cmp = (a, b) => a.localeCompare(b, undefined, { ignorePunctuation: true })\n\n if (order === 'ASC') {\n return copy.sort((a, b) => {\n a = _getProperty(a, property) ?? ''\n b = _getProperty(b, property) ?? ''\n if (typeof a === 'string' && typeof b === 'string') {\n if (caseSensitive) {\n return cmp(a.toUpperCase(), b.toUpperCase())\n } else {\n return cmp(a, b)\n }\n } else {\n if (a > b) return 1\n if (a < b) return -1\n }\n return 0\n })\n } else {\n return copy.sort((a, b) => {\n a = _getProperty(a, property) ?? ''\n b = _getProperty(b, property) ?? ''\n if (typeof a === 'string' && typeof b === 'string') {\n if (caseSensitive) {\n return cmp(b.toUpperCase(), a.toUpperCase())\n } else {\n return cmp(b, a)\n }\n } else {\n if (a < b) return 1\n if (a > b) return -1\n }\n return 0\n })\n }\n}\n\n/**\n * Create a helper object for table sorting.\n *\n * @param sort Sort method in charge of resorting the data.\n * @param initialCol Zero-based initial col to sort, defaults to 0.\n * @param initialOrder Initial sort order, defaults to 'ASC'\n * @returns Object expeced by table sort.\n */\nexport function clTableSorter (sorter, initialCol = 0, initialOrder = 'ASC') {\n return {\n col: initialCol,\n order: initialOrder,\n set: function (col, order) {\n const sortedOrder = this.sort(col, order)\n this.col = col\n this.order = sortedOrder\n },\n get: function (col) {\n return this.col === col ? this.order : 'NONE'\n },\n sorted: [],\n sorter,\n sort: function (col = this.col, order = this.order) {\n const { sorted, sortedOrder } = this.sorter(col, order)\n this.sorted = sorted\n return sortedOrder\n }\n }\n}\n\n/**\n * Create a typical helper object for table sorting of array of objects.\n *\n * @param dataCallback Function that returns the to-be-sorted object array.\n * @param keys Columns/keys in object to sort.\n * @param initialCol Initial column to sort for, zero Based. If negative, sort reverse (1-based).\n * @param pageNo Pagination page, zero-based.\n * @param pageSize Pagination page size, defaults to 'one big page'.\n * @returns Object expeced by table sort.\n */\nexport function clTableSorterObjects (\n dataCallback,\n keys,\n initialCol = 0,\n pageNoCallback = () => 0,\n pageSizeCallback = () => Number.MAX_SAFE_INTEGER\n) {\n return clTableSorter(\n (col, order) => {\n return {\n sorted: clPaginate(\n clSort(dataCallback, keys[col], order),\n pageNoCallback(),\n pageSizeCallback()\n ),\n sortedOrder: order\n }\n },\n initialCol >= 0 ? initialCol : initialCol * -1 - 1,\n initialCol >= 0 ? 'ASC' : 'DESC'\n )\n}\n\n// -----------------------------------------------------------------------------\n// --- misc --------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Remove characters from user-provided IDs that can’t appear in our UUIDs or (CS) urns.\n */\nexport function clSanitizeId (id) {\n return id.replace(/[^A-Za-z0-9:_-]*/g, '')\n}\n\n/**\n * Debounce a method to be called not faster than x ms.\n *\n * Usually used for do-as-you-type input elements.\n *\n * @param {function} callback Function to debounce.\n * @param {number} ms Optional time to debounce. Defaults to 500.\n * @param {string} key Optional name/key for this debounce, in case multiple concurrent exist.\n */\nexport function clDebounce (callback, ms = 500, key = 'none') {\n clearTimeout(timeouts.get(key))\n timeouts.set(key, setTimeout(callback, ms))\n}\nconst timeouts = new Map()\n\n/**\n * Generate a random string/sentence.\n *\n * @param {number} length Number of words in sentence, defaults to 3.\n * @param {string[]} words Words to choose from, defaults to lorem impsum words.\n * @return {string} Random string.\n */\nexport function clRandomString (\n length = 3,\n words = [\n 'lorem',\n 'ipsum',\n 'dolor',\n 'sit',\n 'amet',\n 'consectetur',\n 'adipiscing',\n 'elit',\n 'eiusmod',\n 'tempor',\n 'incididunt',\n 'labore',\n 'et',\n 'dolore',\n 'magna',\n 'aliqua'\n ]\n) {\n let string = ''\n for (let i = 0; i < length; i++) {\n string += ' ' + words[Math.floor(Math.random() * words.length)]\n }\n return string.substr(1)\n}\n\n/**\n * Generate a random array.\n *\n * @param {number} length Number of words/entries in array, defaults to 3.\n * @param {string[]} words Words to choose from, defaults to greek letters.\n * @return {string[]} Random string array.\n */\nexport function clRandomList (\n length = 3,\n words = [\n 'alpha',\n 'beta',\n 'gamma',\n 'delta',\n 'epsilon',\n 'zeta',\n 'eta',\n 'theta',\n 'iota',\n 'kappa',\n 'lambda',\n 'omicorn'\n ]\n) {\n const array = []\n for (let i = 0; i < length; i++) {\n array.push(words[Math.floor(Math.random() * words.length)])\n }\n return array\n}\n\n/**\n * Copy data to the clipboard.\n *\n * @param {string} data Data to copy.\n */\nexport function clCopyData (data) {\n navigator.clipboard.writeText(data)\n}\n\n/**\n * Trigger a series of store reloads and wait for them to set a loaded flag.\n *\n * @param {ComponentCustomProperties} component Vue component to set the loaded flag on.\n * @param {function[]} forced Array of callbacks will always run (forced)\n * @param {function[]} optional (Optional) Array of callbacks that will only load if not yet loaded (non-forced)\n * @param {boolean} loading If false, the component.loading Promise won’t be handled.\n * @returns A promise of all the triggered callbacks.\n * @deprecated use clReload() instead\n */\nexport function clReloadStore (component, forced = [], optional = [], loading = true) {\n const promises = []\n\n for (const action of forced) {\n if (typeof action === 'function') {\n promises.push(action())\n } else if (action) {\n // action = [function(), param1]\n const f = action.shift()\n promises.push(f(...action))\n }\n }\n\n for (const action of optional) {\n if (typeof action === 'function') {\n promises.push(action(false))\n } else if (action) {\n // action = [function(), param]\n const f = action.shift()\n promises.push(f(action.shift(), false))\n }\n }\n\n if (loading) {\n // if true, we keep a .loading promise in the component\n component.loading = Promise.all(promises).finally(() => {\n if (loading) component.loading = null\n })\n return component.loading\n } else {\n return Promise.all(promises)\n }\n}\n\n/**\n * Trigger a series of store reloads and wait for them to set a loaded flag.\n *\n * @param {ComponentCustomProperties} component Vue component to set the loaded flag on.\n * @param {function[]} forced Array of callbacks will always run (forced)\n * @param {function[]} optional (Optional) Array of callbacks that will only load if not yet loaded (non-forced)\n * @param {boolean} loading If false, the component.loading Promise won’t be handled.\n * @returns A promise of all the triggered callbacks.\n */\nexport function clReload (component, forced = [], optional = [], loading = true) {\n const promises = []\n\n for (const action of forced) {\n if (typeof action === 'function') {\n promises.push(action(true))\n } else if (action) {\n // action = [function(), param, param, ...]\n const f = action.shift()\n promises.push(f(true, ...action)) // true = force mode\n }\n }\n\n for (const action of optional) {\n if (typeof action === 'function') {\n promises.push(action(false))\n } else if (action) {\n // action = [function(), param, param, ...]\n const f = action.shift()\n promises.push(f(false, ...action)) // false = non-force mode\n }\n }\n\n if (loading) {\n // if true, we keep a .loading promise in the component\n component.loading = Promise.all(promises).finally(() => {\n if (loading) component.loading = null\n })\n return component.loading\n } else {\n return Promise.all(promises)\n }\n}\n\nexport function clSleep (ms) {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\n// -----------------------------------------------------------------------------\n// --- themes ------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\nexport function clThemeSetup () {\n const settings = getDomainCookieJson('cl_ui_settings')\n const dark = settings?.theme === 'dark'\n clThemeSetDark(dark) // re-set to prolong expiration\n const checkbox = document.querySelector('#cl-mode-dark')\n if (checkbox) {\n checkbox.checked = dark\n checkbox.addEventListener('change', () => {\n clThemeSetDark(checkbox.checked)\n })\n }\n return dark\n}\n\nexport function clThemeSetDark (dark) {\n const settings = getDomainCookieJson('cl_ui_settings')\n settings.theme = dark ? 'dark' : 'light'\n setDomainCookieJson('cl_ui_settings', settings)\n}\n","// utils for Vue.js\n\nimport bootstrap from 'bootstrap/dist/js/bootstrap.bundle.min'\nimport { nextTick } from 'vue'\n\n// -----------------------------------------------------------------------------\n// --- tooltips ----------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * v-tooltip directive.\n */\nexport const clVTooltip = {\n mounted (element, binding) {\n let color = ''\n for (const cls of [\n 'cl-tooltip-primary',\n 'cl-tooltip-secondary',\n 'cl-tooltip-light',\n 'cl-tooltip-dark'\n ]) {\n if (element.classList.contains(cls)) color += ` ${cls}`\n }\n\n const tooltip = new bootstrap.Tooltip(element, {\n title: binding.value,\n placement: binding.arg,\n html: true,\n trigger: 'hover',\n delay: { show: 65, hide: 0 },\n template: `<div class=\"tooltip cl-tooltip${color}\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>`\n })\n\n element.__tooltipInstance = tooltip\n\n // force-hide other tooltips here\n element.addEventListener('show.bs.tooltip', function () {\n const tooltips = document.querySelectorAll('.cl-tooltip')\n tooltips.forEach(tip => tip.remove())\n })\n\n return tooltip\n },\n\n unmounted (element) {\n const tooltip = element.__tooltipInstance\n if (tooltip) {\n if (typeof tooltip.dispose === 'function') {\n tooltip.dispose()\n }\n\n const tooltipElement = document.querySelector('.cl-tooltip')\n if (tooltipElement) {\n tooltipElement.remove()\n }\n\n delete element.__tooltipInstance\n }\n }\n}\n\n/**\n * v-clipboard directive.\n */\nexport const clVClipboard = {\n mounted (element, binding) {\n element.addEventListener('click', function () {\n const value = typeof binding.value === 'function' ? binding.value() : binding.value\n\n // copy to clipboard\n if (binding.value !== '') {\n navigator.clipboard?.writeText(value) // note: only works on https/localhost\n }\n\n // add flash indicator\n element.classList.add('cl-animation-flash-text')\n setTimeout(() => {\n element.classList.remove('cl-animation-flash-text')\n }, 1500)\n })\n }\n}\n\n// -----------------------------------------------------------------------------\n// --- Vue.js wrapper/helper ---------------------------------------------------\n// -----------------------------------------------------------------------------\n\n// $ref typescript cast methods ------------------------------------------------\n\nexport function clRefClField (ref) {\n return ref\n}\n\nexport function clRefClFieldGroup (ref) {\n return ref\n}\n\nexport function clRefHTMLElement (ref) {\n return ref\n}\n\nexport function clRefFocus (ref) {\n nextTick(() => {\n clRefHTMLElement(ref)?.focus()\n })\n}\n\nexport function clBackOrGoto (router, routeName) {\n const from = router.from\n if (router.currentRoute.value.name?.toString().startsWith(from ?? '-')) {\n router.go(-1)\n } else {\n router.replace({ name: routeName })\n }\n}\n","<!-- used at end of forms/pages to provide uniform back/cancel + OK buttons -->\n<template>\n <cl-section-main class=\"cl-back-cancel-ok\">\n <slot />\n <div\n class=\"cl-spacing-box cl-spacing-medium it-buttons\"\n :class=\"[backHidden ? 'text-end' : 'cl-spread']\"\n >\n <button\n v-if=\"!backHidden\"\n type=\"button\"\n class=\"btn cl-color-secondary cl-back-cancel-ok-back it-cancel\"\n @click=\"abort()\"\n >\n <span v-if=\"dirty\">{{ cancel }}</span>\n <span v-else>{{ back }}</span>\n </button>\n <button\n v-if=\"!hidden\"\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{ 'cl-btn-spinner': spinner }\"\n :disabled=\"disabled || !dirty\"\n @click=\"$emit('ok')\"\n >\n <span>{{ ok }}</span>\n </button>\n </div>\n\n <cl-modal :id=\"ID_MODAL\">\n <template #title> Unsaved changes </template>\n <template #body>\n <slot name=\"modal\">\n <p>There are unsaved changes. Do you want to discard them or continue editing?</p>\n </slot>\n </template>\n <template #footer-left>\n <button\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"emit('cancel', true)\"\n >\n Discard changes\n </button>\n </template>\n <template #footer-right>\n <button type=\"button\" class=\"btn cl-color-primary it-ok\" @click=\"clModalHide()\">\n Continue editing\n </button>\n </template>\n </cl-modal>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\nimport { clBackOrGoto } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClBackCancelOk',\n props: {\n ok: {\n type: String,\n default: 'Ok'\n },\n back: {\n type: String,\n default: 'Back'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dirty: {\n type: Boolean,\n default: false\n },\n hidden: {\n type: Boolean,\n default: false\n },\n backHidden: {\n type: Boolean,\n default: false\n },\n backRoute: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n emits: ['ok', 'cancel'],\n data () {\n return {\n ID_MODAL: 'cl-modal-back-cancel-ok'\n }\n },\n methods: {\n clModalHide: CL.clModalHide,\n abort: function (): void {\n if (this.dirty) {\n CL.clModalShow(this.ID_MODAL, {})\n } else {\n this.goBack()\n }\n },\n emit: function (what: 'ok' | 'cancel'): void {\n CL.clModalHide()\n if (what === 'cancel') {\n this.goBack()\n } else {\n this.$emit(what)\n }\n },\n goBack: function () {\n if (this.backRoute) {\n clBackOrGoto(this.$router, this.backRoute)\n } else {\n this.$emit('cancel')\n }\n }\n }\n})\n</script>\n","<!-- used at end of forms/pages to provide uniform back/cancel + OK buttons -->\n<template>\n <cl-section-main class=\"cl-back-cancel-ok\">\n <slot />\n <div\n class=\"cl-spacing-box cl-spacing-medium it-buttons\"\n :class=\"[backHidden ? 'text-end' : 'cl-spread']\"\n >\n <button\n v-if=\"!backHidden\"\n type=\"button\"\n class=\"btn cl-color-secondary cl-back-cancel-ok-back it-cancel\"\n @click=\"abort()\"\n >\n <span v-if=\"dirty\">{{ cancel }}</span>\n <span v-else>{{ back }}</span>\n </button>\n <button\n v-if=\"!hidden\"\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{ 'cl-btn-spinner': spinner }\"\n :disabled=\"disabled || !dirty\"\n @click=\"$emit('ok')\"\n >\n <span>{{ ok }}</span>\n </button>\n </div>\n\n <cl-modal :id=\"ID_MODAL\">\n <template #title> Unsaved changes </template>\n <template #body>\n <slot name=\"modal\">\n <p>There are unsaved changes. Do you want to discard them or continue editing?</p>\n </slot>\n </template>\n <template #footer-left>\n <button\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"emit('cancel', true)\"\n >\n Discard changes\n </button>\n </template>\n <template #footer-right>\n <button type=\"button\" class=\"btn cl-color-primary it-ok\" @click=\"clModalHide()\">\n Continue editing\n </button>\n </template>\n </cl-modal>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\nimport { clBackOrGoto } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClBackCancelOk',\n props: {\n ok: {\n type: String,\n default: 'Ok'\n },\n back: {\n type: String,\n default: 'Back'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dirty: {\n type: Boolean,\n default: false\n },\n hidden: {\n type: Boolean,\n default: false\n },\n backHidden: {\n type: Boolean,\n default: false\n },\n backRoute: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n emits: ['ok', 'cancel'],\n data () {\n return {\n ID_MODAL: 'cl-modal-back-cancel-ok'\n }\n },\n methods: {\n clModalHide: CL.clModalHide,\n abort: function (): void {\n if (this.dirty) {\n CL.clModalShow(this.ID_MODAL, {})\n } else {\n this.goBack()\n }\n },\n emit: function (what: 'ok' | 'cancel'): void {\n CL.clModalHide()\n if (what === 'cancel') {\n this.goBack()\n } else {\n this.$emit(what)\n }\n },\n goBack: function () {\n if (this.backRoute) {\n clBackOrGoto(this.$router, this.backRoute)\n } else {\n this.$emit('cancel')\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClBackCancelOk from './template.vue'\n\nClBackCancelOk.install = (Vue: App) => {\n Vue.component(ClBackCancelOk.name ?? 'ClNoName', ClBackCancelOk)\n}\n\nexport default ClBackCancelOk\n","<template>\n <div v-if=\"visible\" :id=\"id\" class=\"card cl-card cl-cookie-banner\" :class=\"clazz\">\n <div class=\"card-body\">\n <slot>\n <p class=\"cl-p-small\">\n For our services to work, we use essential cookies which we control. We'd also like to\n include others to analyze how our site is used to help improve it - but only if you\n accept. Learn more in our\n <a class=\"cl-a-text\" href=\"https://castlabs.com/privacy-cookie-policy/\">privacy policy</a\n >.\n </p>\n </slot>\n\n <div class=\"cl-spacing-box cl-spread\">\n <button type=\"button\" class=\"btn btn-sm cl-color-secondary it-cancel\" @click=\"decline()\">\n Decline\n </button>\n <button type=\"button\" class=\"btn btn-sm cl-color-red it-ok\" @click=\"accept()\">\n Accept\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClCookieBanner',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n local: {\n // toggle global cookie for .castlabs.com domain (won’t work in DEV/localhost)\n type: Boolean,\n default: false\n }\n },\n emits: ['consent'],\n data () {\n return {\n fade: false,\n visible: true,\n cookie: 'cl_banner_nok'\n }\n },\n computed: {\n clazz: function (): string {\n return (this.fade ? ` cl-fade-away` : '') + (this.class ? ` ${this.class}` : '')\n }\n },\n created () {\n if (!this.local && !window.location.hostname.match(/castlabs.com$/)) {\n // if not in local mode, banner only works on *.castlabs.com domains\n this.visible = false\n return\n }\n for (const cookie of document?.cookie?.split(/; */) ?? []) {\n const [name, value] = cookie.split('=')\n if (name === this.cookie && ['-mtm', '+mtm'].includes(value ?? 'unknown')) {\n this.visible = false\n return\n }\n }\n },\n methods: {\n accept: function (): void {\n document.cookie = this.cookieString('+mtm')\n this.hide()\n this.$emit('consent')\n },\n decline: function (): void {\n document.cookie = this.cookieString('-mtm')\n this.hide()\n },\n cookieString: function (payload: string): string {\n if (this.local) {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; path=/; SameSite=Lax;` // ~13 months\n } else {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; domain=.castlabs.com; path=/; SameSite=Lax;` // ~13 months\n }\n },\n hide: function (): void {\n this.fade = true\n setTimeout(() => {\n this.visible = false\n }, 500)\n }\n }\n})\n</script>\n","<template>\n <div v-if=\"visible\" :id=\"id\" class=\"card cl-card cl-cookie-banner\" :class=\"clazz\">\n <div class=\"card-body\">\n <slot>\n <p class=\"cl-p-small\">\n For our services to work, we use essential cookies which we control. We'd also like to\n include others to analyze how our site is used to help improve it - but only if you\n accept. Learn more in our\n <a class=\"cl-a-text\" href=\"https://castlabs.com/privacy-cookie-policy/\">privacy policy</a\n >.\n </p>\n </slot>\n\n <div class=\"cl-spacing-box cl-spread\">\n <button type=\"button\" class=\"btn btn-sm cl-color-secondary it-cancel\" @click=\"decline()\">\n Decline\n </button>\n <button type=\"button\" class=\"btn btn-sm cl-color-red it-ok\" @click=\"accept()\">\n Accept\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClCookieBanner',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n local: {\n // toggle global cookie for .castlabs.com domain (won’t work in DEV/localhost)\n type: Boolean,\n default: false\n }\n },\n emits: ['consent'],\n data () {\n return {\n fade: false,\n visible: true,\n cookie: 'cl_banner_nok'\n }\n },\n computed: {\n clazz: function (): string {\n return (this.fade ? ` cl-fade-away` : '') + (this.class ? ` ${this.class}` : '')\n }\n },\n created () {\n if (!this.local && !window.location.hostname.match(/castlabs.com$/)) {\n // if not in local mode, banner only works on *.castlabs.com domains\n this.visible = false\n return\n }\n for (const cookie of document?.cookie?.split(/; */) ?? []) {\n const [name, value] = cookie.split('=')\n if (name === this.cookie && ['-mtm', '+mtm'].includes(value ?? 'unknown')) {\n this.visible = false\n return\n }\n }\n },\n methods: {\n accept: function (): void {\n document.cookie = this.cookieString('+mtm')\n this.hide()\n this.$emit('consent')\n },\n decline: function (): void {\n document.cookie = this.cookieString('-mtm')\n this.hide()\n },\n cookieString: function (payload: string): string {\n if (this.local) {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; path=/; SameSite=Lax;` // ~13 months\n } else {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; domain=.castlabs.com; path=/; SameSite=Lax;` // ~13 months\n }\n },\n hide: function (): void {\n this.fade = true\n setTimeout(() => {\n this.visible = false\n }, 500)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClCookieBanner from './template.vue'\n\nClCookieBanner.install = (Vue: App) => {\n Vue.component(ClCookieBanner.name ?? 'ClNoName', ClCookieBanner)\n}\n\nexport default ClCookieBanner\n","<template>\n <span\n v-if=\"unstyled\"\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n class=\"cl-copy\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n <span\n v-else-if=\"code\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <code ref=\"content\">\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </code>\n </span>\n <span\n v-else\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClCopy',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n show: {\n type: String,\n default: undefined\n },\n copy: {\n type: String,\n default: undefined\n },\n underline: {\n type: Boolean,\n default: false\n },\n code: {\n type: Boolean,\n default: false\n },\n unstyled: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n tooltip: function (): string {\n if (this.show && this.contentToCopy() !== this.show) {\n return `${this.contentToCopy()}<br><small>Click-to-copy!</small>`\n }\n return '<small>Click-to-copy!</small>'\n },\n contentToCopy: function (): string {\n return this.copy ?? (this.$refs.content as { textContent: string })?.textContent.trim()\n }\n }\n})\n</script>\n","<template>\n <span\n v-if=\"unstyled\"\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n class=\"cl-copy\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n <span\n v-else-if=\"code\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <code ref=\"content\">\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </code>\n </span>\n <span\n v-else\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClCopy',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n show: {\n type: String,\n default: undefined\n },\n copy: {\n type: String,\n default: undefined\n },\n underline: {\n type: Boolean,\n default: false\n },\n code: {\n type: Boolean,\n default: false\n },\n unstyled: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n tooltip: function (): string {\n if (this.show && this.contentToCopy() !== this.show) {\n return `${this.contentToCopy()}<br><small>Click-to-copy!</small>`\n }\n return '<small>Click-to-copy!</small>'\n },\n contentToCopy: function (): string {\n return this.copy ?? (this.$refs.content as { textContent: string })?.textContent.trim()\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClCopy from './template.vue'\n\nClCopy.install = (Vue: App) => {\n Vue.component(ClCopy.name ?? 'ClNoName', ClCopy)\n}\n\nexport default ClCopy\n","<template>\n <code :id=\"id\" :class=\"clazz\">{{ clFormatCardNumber(number) }}</code\n >,\n {{ validText }}\n <code>{{ expires }}</code>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClCreditcardNumber',\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n number: {\n type: String,\n default: '0000000000000000'\n },\n expires: {\n type: String,\n default: 'MM/YYYY'\n },\n expired: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n validText: function (): string {\n return this.expired ? 'expired' : 'valid until'\n }\n },\n methods: {\n clFormatCardNumber: CL.clFormatCardNumber\n }\n})\n</script>\n","<template>\n <code :id=\"id\" :class=\"clazz\">{{ clFormatCardNumber(number) }}</code\n >,\n {{ validText }}\n <code>{{ expires }}</code>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClCreditcardNumber',\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n number: {\n type: String,\n default: '0000000000000000'\n },\n expires: {\n type: String,\n default: 'MM/YYYY'\n },\n expired: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n validText: function (): string {\n return this.expired ? 'expired' : 'valid until'\n }\n },\n methods: {\n clFormatCardNumber: CL.clFormatCardNumber\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClCreditcardNumber from './template.vue'\n\nClCreditcardNumber.install = (Vue: App) => {\n Vue.component(ClCreditcardNumber.name ?? 'ClNoName', ClCreditcardNumber)\n}\n\nexport default ClCreditcardNumber\n","<template>\n <div\n class=\"cl-spacing-small\"\n :class=\"dragging ? 'cl-dragging' : ''\"\n @dragover=\"onDrag(true)\"\n @dragleave=\"onDrag(false)\"\n @drop.prevent=\"onDrop\"\n >\n <input\n v-if=\"camera\"\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n accept=\"image/*\"\n class=\"cl-dropzone-file\"\n capture=\"environment\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <input\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"multiple\"\n class=\"cl-dropzone-file\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <div v-if=\"camera\" class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-camera\" aria-hidden=\"true\" />Use your <a href=\"#\" @click.prevent>camera</a>\n to take a picture\n {{ why }}.\n </div>\n <div v-else class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-file-upload\" aria-hidden=\"true\" />Drop or\n <a href=\"#\" @click.prevent>browse</a>\n {{ what }}\n {{ why }}.\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nfunction preventDefaults (event: Event): void {\n event.preventDefault()\n}\n\nexport default defineComponent({\n name: 'ClDropzone',\n props: {\n what: {\n type: String,\n default: 'a file'\n },\n why: {\n type: String,\n default: 'to add'\n },\n accept: {\n type: String,\n default: undefined\n },\n camera: {\n type: Boolean,\n default: false\n },\n emitContent: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n }\n },\n emits: ['file', 'content', 'files', 'contents'],\n data () {\n return {\n $uid: 0, // to get around type error of plugin\n dragging: false\n }\n },\n mounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.addEventListener(eventName, preventDefaults)\n })\n },\n unmounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.removeEventListener(eventName, preventDefaults)\n })\n },\n methods: {\n browse: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n if (element && document.createEvent) {\n const event = document.createEvent('MouseEvents')\n event.initEvent('click', true, false)\n element.dispatchEvent(event)\n }\n },\n browsed: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n const files = element.files ?? []\n if (files.length > 0) {\n if (this.multiple) {\n this.loadFiles(Array.from(files))\n } else {\n this.loadFile(files[0] as File)\n }\n }\n },\n mock: function (file: File): void {\n // to be triggered in UI tests only\n this.$emit('file', file)\n },\n loadFile: function (file: File): void {\n const emit = this.$emit\n emit('file', file)\n if (this.emitContent) {\n const reader = new FileReader()\n reader.onload = function (event) {\n emit('content', event.target?.result)\n }\n reader.readAsText(file)\n }\n },\n loadFiles: function (files: File[]): void {\n const emit = this.$emit\n emit('files', files)\n if (this.emitContent) {\n const reads = files.map(\n file =>\n new Promise<string | ArrayBuffer | null>(resolve => {\n const reader = new FileReader()\n reader.onload = event => resolve(event.target?.result ?? null)\n reader.readAsText(file)\n })\n )\n Promise.all(reads).then(contents => emit('contents', contents))\n }\n },\n onDrop: function (event: DragEvent): void {\n if (event.dataTransfer) {\n if (this.multiple) {\n this.loadFiles(Array.from(event.dataTransfer.files))\n } else {\n this.loadFile(event.dataTransfer.files[0] as File)\n }\n }\n this.dragging = false\n },\n onDrag: function (over: boolean): void {\n this.dragging = over\n }\n }\n})\n</script>\n","<template>\n <div\n class=\"cl-spacing-small\"\n :class=\"dragging ? 'cl-dragging' : ''\"\n @dragover=\"onDrag(true)\"\n @dragleave=\"onDrag(false)\"\n @drop.prevent=\"onDrop\"\n >\n <input\n v-if=\"camera\"\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n accept=\"image/*\"\n class=\"cl-dropzone-file\"\n capture=\"environment\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <input\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"multiple\"\n class=\"cl-dropzone-file\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <div v-if=\"camera\" class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-camera\" aria-hidden=\"true\" />Use your <a href=\"#\" @click.prevent>camera</a>\n to take a picture\n {{ why }}.\n </div>\n <div v-else class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-file-upload\" aria-hidden=\"true\" />Drop or\n <a href=\"#\" @click.prevent>browse</a>\n {{ what }}\n {{ why }}.\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nfunction preventDefaults (event: Event): void {\n event.preventDefault()\n}\n\nexport default defineComponent({\n name: 'ClDropzone',\n props: {\n what: {\n type: String,\n default: 'a file'\n },\n why: {\n type: String,\n default: 'to add'\n },\n accept: {\n type: String,\n default: undefined\n },\n camera: {\n type: Boolean,\n default: false\n },\n emitContent: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n }\n },\n emits: ['file', 'content', 'files', 'contents'],\n data () {\n return {\n $uid: 0, // to get around type error of plugin\n dragging: false\n }\n },\n mounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.addEventListener(eventName, preventDefaults)\n })\n },\n unmounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.removeEventListener(eventName, preventDefaults)\n })\n },\n methods: {\n browse: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n if (element && document.createEvent) {\n const event = document.createEvent('MouseEvents')\n event.initEvent('click', true, false)\n element.dispatchEvent(event)\n }\n },\n browsed: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n const files = element.files ?? []\n if (files.length > 0) {\n if (this.multiple) {\n this.loadFiles(Array.from(files))\n } else {\n this.loadFile(files[0] as File)\n }\n }\n },\n mock: function (file: File): void {\n // to be triggered in UI tests only\n this.$emit('file', file)\n },\n loadFile: function (file: File): void {\n const emit = this.$emit\n emit('file', file)\n if (this.emitContent) {\n const reader = new FileReader()\n reader.onload = function (event) {\n emit('content', event.target?.result)\n }\n reader.readAsText(file)\n }\n },\n loadFiles: function (files: File[]): void {\n const emit = this.$emit\n emit('files', files)\n if (this.emitContent) {\n const reads = files.map(\n file =>\n new Promise<string | ArrayBuffer | null>(resolve => {\n const reader = new FileReader()\n reader.onload = event => resolve(event.target?.result ?? null)\n reader.readAsText(file)\n })\n )\n Promise.all(reads).then(contents => emit('contents', contents))\n }\n },\n onDrop: function (event: DragEvent): void {\n if (event.dataTransfer) {\n if (this.multiple) {\n this.loadFiles(Array.from(event.dataTransfer.files))\n } else {\n this.loadFile(event.dataTransfer.files[0] as File)\n }\n }\n this.dragging = false\n },\n onDrag: function (over: boolean): void {\n this.dragging = over\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClDropzone from './template.vue'\n\nClDropzone.install = (Vue: App) => {\n Vue.component(ClDropzone.name ?? 'ClNoName', ClDropzone)\n}\n\nexport default ClDropzone\n","<template>\n <label v-if=\"label\" :for=\"$uid\" class=\"form-label\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <textarea\n v-if=\"type === 'textarea'\"\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <select\n v-else-if=\"type === 'select'\"\n :id=\"$uid\"\n v-model=\"modelValue\"\n class=\"form-select\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :required=\"required\"\n v-bind=\"$attrs\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n >\n <slot />\n </select>\n <input\n v-else\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :min=\"min\"\n :max=\"max\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :step=\"step\"\n :pattern=\"pattern\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :type=\"['number'].includes(type) ? 'text' : type\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <label v-if=\"type === 'file'\" :id=\"`${$uid}-companion`\" :for=\"$uid\" class=\"cl-file-companion\">{{\n filePlaceholder\n }}</label>\n <template v-if=\"!nofeedback\">\n <p class=\"invalid-feedback\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\">\n {{ help }}\n </p>\n <p v-else class=\"valid-feedback valid-feedback-none\" />\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClField',\n inheritAttrs: false,\n props: {\n value: {\n type: String,\n default: undefined\n },\n type: {\n type: String,\n default: 'text'\n },\n label: {\n type: String,\n default: undefined\n },\n placeholder: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n nofeedback: {\n type: Boolean,\n default: false\n },\n required: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n },\n autotrim: {\n type: Boolean,\n default: false\n },\n prevalidate: {\n type: Boolean,\n default: false\n },\n minlength: {\n type: String,\n default: undefined\n },\n maxlength: {\n type: String,\n default: undefined\n },\n min: {\n type: String,\n default: undefined\n },\n max: {\n type: String,\n default: undefined\n },\n step: {\n type: String,\n default: '1'\n },\n pattern: {\n type: String,\n default: undefined\n },\n float: {\n type: Boolean,\n default: false\n }\n },\n emits: ['valid', 'invalid', 'changed', 'update:modelValue'],\n data () {\n return {\n valid: true,\n modelValue: this.value ?? '',\n invalidMessage: this.error ?? 'Input invalid.',\n filePlaceholder: this.placeholder ?? 'Please select ...'\n }\n },\n computed: {\n clazz: function (): string {\n if (this.type === 'file') {\n return this.class + ' cl-file' + (!this.valid ? ' invalid' : '')\n } else {\n return this.class + ' form-control' + (!this.valid ? ' invalid' : '')\n }\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n mounted: function () {\n if (this.prevalidate) this.validate()\n },\n methods: {\n runAutotrim: function (): void {\n if (this.autotrim || ['number'].includes(this.type)) {\n const input = this.$refs.input as HTMLInputElement\n input.value = input.value.trim()\n this.modelValue = input.value\n }\n },\n focus: function (): void {\n clRefFocus(this.$refs.input)\n },\n validate: function (trim = false): void {\n this.valid = true\n if (trim) this.runAutotrim()\n if (this.type === 'file' && this.modelValue !== '') {\n this.filePlaceholder = this.modelValue.replace(/.*[/\\\\]/, '')\n }\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n this.setInvalid('This field may not be blank.')\n } else {\n switch (this.type) {\n case 'number':\n this.validateNumber()\n break\n case 'email':\n this.validateEMail()\n break\n default:\n this.validateText()\n }\n }\n if (this.valid) this.setValid(this.modelValue)\n },\n validateSilent: function (): boolean {\n // variant of validate() that does not modify the field/internal data but\n // instead validates to true/false\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n return false\n } else {\n switch (this.type) {\n case 'number':\n if (!this.validateNumber(true)) return false\n break\n case 'email':\n if (!this.validateEMail(true)) return false\n break\n default:\n if (!this.validateText(true)) return false\n }\n }\n return true\n },\n validateText: function (silent = false): boolean {\n const minlength = Number(this.minlength)\n const maxlength = Number(this.maxlength)\n if (this.minlength && (this.modelValue?.length ?? 0) < minlength) {\n if (silent) return false\n this.setInvalid(\n this.error ??\n `Please enter at least ${minlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.maxlength && (this.modelValue?.length ?? 0) > maxlength) {\n if (silent) return false\n this.setInvalid(\n this.error ?? `Please enter at most ${maxlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.pattern && !new RegExp(this.pattern, 'g').test(this.modelValue)) {\n if (silent) return false\n this.setInvalid(this.error)\n return false\n }\n return true\n },\n validateNumber: function (silent = false): boolean {\n const modelValue = this.modelValue.trim()\n const val = parseFloat(modelValue.trim())\n if (this.float) {\n if (!/^-?[0-9]*\\.?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n } else {\n // integer\n if (!/^-?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n if (val.toString() !== modelValue) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n }\n if (this.min !== undefined && this.max !== undefined) {\n if (val < parseFloat(this.min) || val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number between ${this.min} and ${this.max}.`)\n return false\n }\n } else if (this.min !== undefined) {\n if (val < parseFloat(this.min)) {\n if (silent) return false\n this.setInvalid(`Please enter a number >= ${this.min}.`)\n return false\n }\n } else if (this.max !== undefined) {\n if (val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number <= ${this.max}.`)\n return false\n }\n }\n return true\n },\n validateEMail: function (silent = false): boolean {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+[^\\s@.]$/.test(this.modelValue)) {\n if (silent) return false\n this.setInvalid('Please enter a valid email address.')\n return false\n }\n return true\n },\n setValid: function (value = ''): void {\n this.valid = true\n this.modelValue = value\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('valid', this.help ?? '')\n this.$emit('changed', this.modelValue)\n },\n setInvalid: function (message?: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('invalid', this.invalidMessage)\n this.$emit('changed', this.modelValue)\n },\n plus: function (): void {\n const target = parseFloat(this.modelValue) + parseFloat(this.step)\n this.set(target)\n },\n minus: function (): void {\n const target = parseFloat(this.modelValue) - parseFloat(this.step)\n this.set(target)\n },\n set: function (target: number): void {\n switch (this.type) {\n case 'range':\n case 'number':\n if (this.min !== undefined && target < parseFloat(this.min)) {\n this.setValid(this.min)\n } else if (this.max !== undefined && target > parseFloat(this.max)) {\n this.setValid(this.max)\n } else {\n this.setValid(String(target))\n }\n break\n }\n }\n }\n})\n</script>\n","<template>\n <label v-if=\"label\" :for=\"$uid\" class=\"form-label\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <textarea\n v-if=\"type === 'textarea'\"\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <select\n v-else-if=\"type === 'select'\"\n :id=\"$uid\"\n v-model=\"modelValue\"\n class=\"form-select\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :required=\"required\"\n v-bind=\"$attrs\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n >\n <slot />\n </select>\n <input\n v-else\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :min=\"min\"\n :max=\"max\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :step=\"step\"\n :pattern=\"pattern\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :type=\"['number'].includes(type) ? 'text' : type\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <label v-if=\"type === 'file'\" :id=\"`${$uid}-companion`\" :for=\"$uid\" class=\"cl-file-companion\">{{\n filePlaceholder\n }}</label>\n <template v-if=\"!nofeedback\">\n <p class=\"invalid-feedback\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\">\n {{ help }}\n </p>\n <p v-else class=\"valid-feedback valid-feedback-none\" />\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClField',\n inheritAttrs: false,\n props: {\n value: {\n type: String,\n default: undefined\n },\n type: {\n type: String,\n default: 'text'\n },\n label: {\n type: String,\n default: undefined\n },\n placeholder: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n nofeedback: {\n type: Boolean,\n default: false\n },\n required: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n },\n autotrim: {\n type: Boolean,\n default: false\n },\n prevalidate: {\n type: Boolean,\n default: false\n },\n minlength: {\n type: String,\n default: undefined\n },\n maxlength: {\n type: String,\n default: undefined\n },\n min: {\n type: String,\n default: undefined\n },\n max: {\n type: String,\n default: undefined\n },\n step: {\n type: String,\n default: '1'\n },\n pattern: {\n type: String,\n default: undefined\n },\n float: {\n type: Boolean,\n default: false\n }\n },\n emits: ['valid', 'invalid', 'changed', 'update:modelValue'],\n data () {\n return {\n valid: true,\n modelValue: this.value ?? '',\n invalidMessage: this.error ?? 'Input invalid.',\n filePlaceholder: this.placeholder ?? 'Please select ...'\n }\n },\n computed: {\n clazz: function (): string {\n if (this.type === 'file') {\n return this.class + ' cl-file' + (!this.valid ? ' invalid' : '')\n } else {\n return this.class + ' form-control' + (!this.valid ? ' invalid' : '')\n }\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n mounted: function () {\n if (this.prevalidate) this.validate()\n },\n methods: {\n runAutotrim: function (): void {\n if (this.autotrim || ['number'].includes(this.type)) {\n const input = this.$refs.input as HTMLInputElement\n input.value = input.value.trim()\n this.modelValue = input.value\n }\n },\n focus: function (): void {\n clRefFocus(this.$refs.input)\n },\n validate: function (trim = false): void {\n this.valid = true\n if (trim) this.runAutotrim()\n if (this.type === 'file' && this.modelValue !== '') {\n this.filePlaceholder = this.modelValue.replace(/.*[/\\\\]/, '')\n }\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n this.setInvalid('This field may not be blank.')\n } else {\n switch (this.type) {\n case 'number':\n this.validateNumber()\n break\n case 'email':\n this.validateEMail()\n break\n default:\n this.validateText()\n }\n }\n if (this.valid) this.setValid(this.modelValue)\n },\n validateSilent: function (): boolean {\n // variant of validate() that does not modify the field/internal data but\n // instead validates to true/false\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n return false\n } else {\n switch (this.type) {\n case 'number':\n if (!this.validateNumber(true)) return false\n break\n case 'email':\n if (!this.validateEMail(true)) return false\n break\n default:\n if (!this.validateText(true)) return false\n }\n }\n return true\n },\n validateText: function (silent = false): boolean {\n const minlength = Number(this.minlength)\n const maxlength = Number(this.maxlength)\n if (this.minlength && (this.modelValue?.length ?? 0) < minlength) {\n if (silent) return false\n this.setInvalid(\n this.error ??\n `Please enter at least ${minlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.maxlength && (this.modelValue?.length ?? 0) > maxlength) {\n if (silent) return false\n this.setInvalid(\n this.error ?? `Please enter at most ${maxlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.pattern && !new RegExp(this.pattern, 'g').test(this.modelValue)) {\n if (silent) return false\n this.setInvalid(this.error)\n return false\n }\n return true\n },\n validateNumber: function (silent = false): boolean {\n const modelValue = this.modelValue.trim()\n const val = parseFloat(modelValue.trim())\n if (this.float) {\n if (!/^-?[0-9]*\\.?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n } else {\n // integer\n if (!/^-?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n if (val.toString() !== modelValue) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n }\n if (this.min !== undefined && this.max !== undefined) {\n if (val < parseFloat(this.min) || val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number between ${this.min} and ${this.max}.`)\n return false\n }\n } else if (this.min !== undefined) {\n if (val < parseFloat(this.min)) {\n if (silent) return false\n this.setInvalid(`Please enter a number >= ${this.min}.`)\n return false\n }\n } else if (this.max !== undefined) {\n if (val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number <= ${this.max}.`)\n return false\n }\n }\n return true\n },\n validateEMail: function (silent = false): boolean {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+[^\\s@.]$/.test(this.modelValue)) {\n if (silent) return false\n this.setInvalid('Please enter a valid email address.')\n return false\n }\n return true\n },\n setValid: function (value = ''): void {\n this.valid = true\n this.modelValue = value\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('valid', this.help ?? '')\n this.$emit('changed', this.modelValue)\n },\n setInvalid: function (message?: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('invalid', this.invalidMessage)\n this.$emit('changed', this.modelValue)\n },\n plus: function (): void {\n const target = parseFloat(this.modelValue) + parseFloat(this.step)\n this.set(target)\n },\n minus: function (): void {\n const target = parseFloat(this.modelValue) - parseFloat(this.step)\n this.set(target)\n },\n set: function (target: number): void {\n switch (this.type) {\n case 'range':\n case 'number':\n if (this.min !== undefined && target < parseFloat(this.min)) {\n this.setValid(this.min)\n } else if (this.max !== undefined && target > parseFloat(this.max)) {\n this.setValid(this.max)\n } else {\n this.setValid(String(target))\n }\n break\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClField from './template.vue'\n\nClField.install = (Vue: App) => {\n Vue.component(ClField.name ?? 'ClNoName', ClField)\n}\n\nexport default ClField\n","<template>\n <div :class=\"clazz\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n :indeterminate=\"indeterminate\"\n :autofocus=\"autofocus\"\n v-bind=\"$attrs\"\n @change=\"$emit('update:modelValue', modelValue)\"\n />\n <label class=\"form-check-label\" :for=\"id ?? $uid\">\n <slot />\n </label>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClFieldCheck',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n value: {\n type: Boolean,\n default: false\n },\n label: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n inline: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n indeterminate: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n modelValue: this.value\n }\n },\n computed: {\n clazz: function (): string {\n return `form-check${this.inline ? ' form-check-inline' : ''} ${this.class}`\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n methods: {\n check: function (value = false) {\n this.modelValue = value\n ;(this.$refs.input as HTMLInputElement).checked = value\n },\n focus: function () {\n clRefFocus(this.$refs.input)\n }\n }\n})\n</script>\n","<template>\n <div :class=\"clazz\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n :indeterminate=\"indeterminate\"\n :autofocus=\"autofocus\"\n v-bind=\"$attrs\"\n @change=\"$emit('update:modelValue', modelValue)\"\n />\n <label class=\"form-check-label\" :for=\"id ?? $uid\">\n <slot />\n </label>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClFieldCheck',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n value: {\n type: Boolean,\n default: false\n },\n label: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n inline: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n indeterminate: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n modelValue: this.value\n }\n },\n computed: {\n clazz: function (): string {\n return `form-check${this.inline ? ' form-check-inline' : ''} ${this.class}`\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n methods: {\n check: function (value = false) {\n this.modelValue = value\n ;(this.$refs.input as HTMLInputElement).checked = value\n },\n focus: function () {\n clRefFocus(this.$refs.input)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClFieldCheck from './template.vue'\n\nClFieldCheck.install = (Vue: App) => {\n Vue.component(ClFieldCheck.name ?? 'ClNoName', ClFieldCheck)\n}\n\nexport default ClFieldCheck\n","<template>\n <label v-if=\"label\" class=\"form-label\" :class=\"{ disabled: disabled }\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <div :class=\"`input-group${clazz}`\" :id=\"id\">\n <slot />\n </div>\n <p class=\"invalid-feedback\" :class=\"{ disabled: disabled }\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\" :class=\"{ disabled: disabled }\">\n {{ help }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClFieldGroup',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n label: {\n type: String,\n default: undefined\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n required: {\n type: Boolean,\n default: false\n },\n noWrap: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: true,\n invalidMessage: this.error ?? 'Input invalid.'\n }\n },\n computed: {\n clazz: function (): string {\n return (\n (this.valid ? '' : ' invalid') +\n (this.class ? ` ${this.class}` : '') +\n (this.noWrap ? ' cl-no-wrap' : '')\n )\n }\n },\n methods: {\n setValid: function (): void {\n this.valid = true\n this.invalidMessage = 'Input invalid.'\n },\n setInvalid: function (message: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n }\n }\n})\n</script>\n","<template>\n <label v-if=\"label\" class=\"form-label\" :class=\"{ disabled: disabled }\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <div :class=\"`input-group${clazz}`\" :id=\"id\">\n <slot />\n </div>\n <p class=\"invalid-feedback\" :class=\"{ disabled: disabled }\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\" :class=\"{ disabled: disabled }\">\n {{ help }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClFieldGroup',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n label: {\n type: String,\n default: undefined\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n required: {\n type: Boolean,\n default: false\n },\n noWrap: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: true,\n invalidMessage: this.error ?? 'Input invalid.'\n }\n },\n computed: {\n clazz: function (): string {\n return (\n (this.valid ? '' : ' invalid') +\n (this.class ? ` ${this.class}` : '') +\n (this.noWrap ? ' cl-no-wrap' : '')\n )\n }\n },\n methods: {\n setValid: function (): void {\n this.valid = true\n this.invalidMessage = 'Input invalid.'\n },\n setInvalid: function (message: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClFieldGroup from './template.vue'\n\nClFieldGroup.install = (Vue: App) => {\n Vue.component(ClFieldGroup.name ?? 'ClNoName', ClFieldGroup)\n}\n\nexport default ClFieldGroup\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClHashtag',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-hashtag '\n if (!this.primary && !this.secondary) {\n if (!this.class.includes('cl-color')) {\n c += ' cl-color-ash'\n }\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClHashtag',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-hashtag '\n if (!this.primary && !this.secondary) {\n if (!this.class.includes('cl-color')) {\n c += ' cl-color-ash'\n }\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClHashtag from './template.vue'\n\nClHashtag.install = (Vue: App) => {\n Vue.component(ClHashtag.name ?? 'ClNoName', ClHashtag)\n}\n\nexport default ClHashtag\n","<template>\n <div class=\"container cl-container-iconotron\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <img :src=\"src\" alt=\"\" />\n </div>\n <div class=\"col-12 col-md-9\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClIconotron',\n props: {\n src: {\n type: String,\n default: undefined\n }\n }\n})\n</script>\n","<template>\n <div class=\"container cl-container-iconotron\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <img :src=\"src\" alt=\"\" />\n </div>\n <div class=\"col-12 col-md-9\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClIconotron',\n props: {\n src: {\n type: String,\n default: undefined\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClIconotron from './template.vue'\n\nClIconotron.install = (Vue: App) => {\n Vue.component(ClIconotron.name ?? 'ClNoName', ClIconotron)\n}\n\nexport default ClIconotron\n","<template>\n <i v-if=\"bottom\" v-tooltip:bottom=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"left\" v-tooltip:left=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"right\" v-tooltip:right=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else v-tooltip:top=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClInfo',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n top: {\n type: Boolean,\n default: true\n },\n info: {\n type: String,\n default: 'Tooltip'\n },\n faded: {\n type: Boolean,\n default: true\n },\n icon: {\n type: String,\n default: 'far fa-question-circle'\n }\n },\n computed: {\n classes: function (): string {\n return this.icon + (this.faded ? ' cl-faded' : '')\n }\n }\n})\n</script>\n","<template>\n <i v-if=\"bottom\" v-tooltip:bottom=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"left\" v-tooltip:left=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"right\" v-tooltip:right=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else v-tooltip:top=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClInfo',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n top: {\n type: Boolean,\n default: true\n },\n info: {\n type: String,\n default: 'Tooltip'\n },\n faded: {\n type: Boolean,\n default: true\n },\n icon: {\n type: String,\n default: 'far fa-question-circle'\n }\n },\n computed: {\n classes: function (): string {\n return this.icon + (this.faded ? ' cl-faded' : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClInfo from './template.vue'\n\nClInfo.install = (Vue: App) => {\n Vue.component(ClInfo.name ?? 'ClNoName', ClInfo)\n}\n\nexport default ClInfo\n","<template>\n <a :class=\"{ 'cl-a-external': !noicon }\" target=\"_blank\" rel=\"noopener noreferrer\"><slot /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClLinkExternal',\n props: {\n noicon: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","<template>\n <a :class=\"{ 'cl-a-external': !noicon }\" target=\"_blank\" rel=\"noopener noreferrer\"><slot /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClLinkExternal',\n props: {\n noicon: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClLinkExternal from './template.vue'\n\nClLinkExternal.install = (Vue: App) => {\n Vue.component(ClLinkExternal.name ?? 'ClNoName', ClLinkExternal)\n}\n\nexport default ClLinkExternal\n","<template>\n <template v-if=\"paragraphs <= 0\">\n {{ lorem(0) }}\n </template>\n <p v-for=\"index in parseInt(paragraphs)\" v-else :key=\"index\">\n {{ lorem(index) }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nconst LOREM1 = `\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n incididunt ut labore et dolore magna aliqua. Sed ullamcorper morbi tincidunt\n ornare massa eget egestas purus viverra. Faucibus in ornare quam viverra orci\n sagittis eu volutpat. Mi sit amet mauris commodo quis imperdiet massa tincidunt\n nunc. Penatibus et magnis dis parturient montes nascetur ridiculus mus mauris.\n Volutpat odio facilisis mauris sit amet massa vitae tortor. Quis risus sed\n vulputate odio ut enim. Adipiscing diam donec adipiscing tristique risus. Nunc\n vel risus commodo viverra maecenas accumsan. Arcu cursus euismod quis viverra\n nibh cras pulvinar mattis nunc. Sit amet massa vitae tortor condimentum lacinia\n quis vel. Sit amet nulla facilisi morbi tempus iaculis urna id volutpat. Dictum\n fusce ut placerat orci nulla pellentesque dignissim enim. Non odio euismod\n lacinia at.`\n\nconst LOREM2 = `\n Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Feugiat\n pretium nibh ipsum consequat. Vulputate mi sit amet mauris commodo quis.\n Elementum curabitur vitae nunc sed velit dignissim sodales ut eu. Risus\n pretium quam vulputate dignissim suspendisse in. Purus non enim praesent\n elementum. Aenean pharetra magna ac placerat vestibulum lectus mauris ultrices.\n Mi in nulla posuere sollicitudin aliquam ultrices. Erat pellentesque adipiscing\n commodo elit at imperdiet dui. Volutpat lacus laoreet non curabitur. Tellus in\n metus vulputate eu scelerisque felis. Volutpat consequat mauris nunc congue nisi.\n Congue eu consequat ac felis donec. Aliquam etiam erat velit scelerisque in\n dictum non. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies.\n Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Sit amet\n justo donec enim diam.`\n\nexport default defineComponent({\n name: 'ClLorem',\n props: {\n words: {\n type: Number,\n default: 10\n },\n paragraphs: {\n type: Number,\n default: 0\n }\n },\n methods: {\n lorem (index: number): string {\n const src = index % 2 ? LOREM2 : LOREM1\n return (\n src.trim().replace(/\\s+/g, ' ').split(' ').splice(0, this.words).join(' ') + '.'\n ).replace(/\\.+/g, '.')\n }\n }\n})\n</script>\n","<template>\n <template v-if=\"paragraphs <= 0\">\n {{ lorem(0) }}\n </template>\n <p v-for=\"index in parseInt(paragraphs)\" v-else :key=\"index\">\n {{ lorem(index) }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nconst LOREM1 = `\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n incididunt ut labore et dolore magna aliqua. Sed ullamcorper morbi tincidunt\n ornare massa eget egestas purus viverra. Faucibus in ornare quam viverra orci\n sagittis eu volutpat. Mi sit amet mauris commodo quis imperdiet massa tincidunt\n nunc. Penatibus et magnis dis parturient montes nascetur ridiculus mus mauris.\n Volutpat odio facilisis mauris sit amet massa vitae tortor. Quis risus sed\n vulputate odio ut enim. Adipiscing diam donec adipiscing tristique risus. Nunc\n vel risus commodo viverra maecenas accumsan. Arcu cursus euismod quis viverra\n nibh cras pulvinar mattis nunc. Sit amet massa vitae tortor condimentum lacinia\n quis vel. Sit amet nulla facilisi morbi tempus iaculis urna id volutpat. Dictum\n fusce ut placerat orci nulla pellentesque dignissim enim. Non odio euismod\n lacinia at.`\n\nconst LOREM2 = `\n Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Feugiat\n pretium nibh ipsum consequat. Vulputate mi sit amet mauris commodo quis.\n Elementum curabitur vitae nunc sed velit dignissim sodales ut eu. Risus\n pretium quam vulputate dignissim suspendisse in. Purus non enim praesent\n elementum. Aenean pharetra magna ac placerat vestibulum lectus mauris ultrices.\n Mi in nulla posuere sollicitudin aliquam ultrices. Erat pellentesque adipiscing\n commodo elit at imperdiet dui. Volutpat lacus laoreet non curabitur. Tellus in\n metus vulputate eu scelerisque felis. Volutpat consequat mauris nunc congue nisi.\n Congue eu consequat ac felis donec. Aliquam etiam erat velit scelerisque in\n dictum non. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies.\n Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Sit amet\n justo donec enim diam.`\n\nexport default defineComponent({\n name: 'ClLorem',\n props: {\n words: {\n type: Number,\n default: 10\n },\n paragraphs: {\n type: Number,\n default: 0\n }\n },\n methods: {\n lorem (index: number): string {\n const src = index % 2 ? LOREM2 : LOREM1\n return (\n src.trim().replace(/\\s+/g, ' ').split(' ').splice(0, this.words).join(' ') + '.'\n ).replace(/\\.+/g, '.')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClLorem from './template.vue'\n\nClLorem.install = (Vue: App) => {\n Vue.component(ClLorem.name ?? 'ClNoName', ClLorem)\n}\n\nexport default ClLorem\n","<template>\n <a class=\"cl-a-email\" :href=\"`mailto:${to}`\">{{ to }}</a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClMailto',\n props: {\n to: {\n type: String,\n default: 'office@castlabs.com'\n }\n }\n})\n</script>\n","<template>\n <a class=\"cl-a-email\" :href=\"`mailto:${to}`\">{{ to }}</a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClMailto',\n props: {\n to: {\n type: String,\n default: 'office@castlabs.com'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClMailto from './template.vue'\n\nClMailto.install = (Vue: App) => {\n Vue.component(ClMailto.name ?? 'ClNoName', ClMailto)\n}\n\nexport default ClMailto\n","<template>\n <a\n :class=\"classes\"\n :to=\"JSON.stringify(to)\"\n :name=\"to.name\"\n :aid=\"to.params?.aid\"\n :bid=\"to.params?.bid\"\n :cid=\"to.params?.cid\"\n :did=\"to.params?.did\"\n :eid=\"to.params?.eid\"\n :fid=\"to.params?.fid\"\n :gid=\"to.params?.gid\"\n :hid=\"to.params?.hid\"\n :iid=\"to.params?.iid\"\n :jid=\"to.params?.jid\"\n :kid=\"to.params?.kid\"\n :lid=\"to.params?.lid\"\n :mid=\"to.params?.mid\"\n :nid=\"to.params?.nid\"\n :oid=\"to.params?.oid\"\n :pid=\"to.params?.pid\"\n :qid=\"to.params?.qid\"\n :rid=\"to.params?.rid\"\n :sid=\"to.params?.sid\"\n :tid=\"to.params?.tid\"\n :uid=\"to.params?.uid\"\n :vid=\"to.params?.vid\"\n :wid=\"to.params?.wid\"\n :xid=\"to.params?.xid\"\n :yid=\"to.params?.yid\"\n :zid=\"to.params?.zid\"\n @click=\"push()\"\n ><slot\n /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n props: {\n to: {\n type: undefined as PropType<any> | undefined, // eslint-disable-line @typescript-eslint/no-explicit-any\n default: () => ({})\n },\n class: {\n type: String,\n default: ''\n }\n },\n computed: {\n classes: function (): string {\n return this.class\n }\n },\n methods: {\n push: function (): void {\n ;(this as any).$router.push(this.to) // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n }\n})\n</script>\n","<template>\n <a\n :class=\"classes\"\n :to=\"JSON.stringify(to)\"\n :name=\"to.name\"\n :aid=\"to.params?.aid\"\n :bid=\"to.params?.bid\"\n :cid=\"to.params?.cid\"\n :did=\"to.params?.did\"\n :eid=\"to.params?.eid\"\n :fid=\"to.params?.fid\"\n :gid=\"to.params?.gid\"\n :hid=\"to.params?.hid\"\n :iid=\"to.params?.iid\"\n :jid=\"to.params?.jid\"\n :kid=\"to.params?.kid\"\n :lid=\"to.params?.lid\"\n :mid=\"to.params?.mid\"\n :nid=\"to.params?.nid\"\n :oid=\"to.params?.oid\"\n :pid=\"to.params?.pid\"\n :qid=\"to.params?.qid\"\n :rid=\"to.params?.rid\"\n :sid=\"to.params?.sid\"\n :tid=\"to.params?.tid\"\n :uid=\"to.params?.uid\"\n :vid=\"to.params?.vid\"\n :wid=\"to.params?.wid\"\n :xid=\"to.params?.xid\"\n :yid=\"to.params?.yid\"\n :zid=\"to.params?.zid\"\n @click=\"push()\"\n ><slot\n /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n props: {\n to: {\n type: undefined as PropType<any> | undefined, // eslint-disable-line @typescript-eslint/no-explicit-any\n default: () => ({})\n },\n class: {\n type: String,\n default: ''\n }\n },\n computed: {\n classes: function (): string {\n return this.class\n }\n },\n methods: {\n push: function (): void {\n ;(this as any).$router.push(this.to) // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClMockRouterLink from './template.vue'\n\nClMockRouterLink.install = (Vue: App) => {\n Vue.component(ClMockRouterLink.name ?? 'ClNoName', ClMockRouterLink)\n}\n\nexport default ClMockRouterLink\n","<template>\n <div :id=\"id\" :class=\"`modal ${clazz}`\" tabindex=\"-1\" data-bs-backdrop=\"static\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <slot name=\"title\">Information</slot>\n <button v-if=\"quick\" class=\"cl-btn-quickaction\" @click=\"$emit('quick', quick)\">\n {{ quick }}\n </button>\n <a\n v-if=\"helpUrl\"\n class=\"modal-help\"\n :href=\"helpUrl\"\n target=\"_blank\"\n title=\"Show help in new window.\"\n ><i class=\"far fa-question-circle\" aria-hidden=\"true\"\n /></a>\n </div>\n <form\n v-if=\"form\"\n :id=\"`${id}-form`\"\n class=\"modal-body cl-form container\"\n novalidate\n @submit.prevent\n >\n <slot />\n <slot name=\"body\" />\n </form>\n <div v-else class=\"modal-body\">\n <slot />\n <slot name=\"body\" />\n </div>\n <div class=\"modal-footer\">\n <span class=\"modal-footer-left cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-left\"\n /></span>\n <span class=\"modal-footer-center cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer\"\n /></span>\n <span class=\"modal-footer-right cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-right\"\n /></span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModal',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: null\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n class: {\n type: String,\n default: null\n },\n helpUrl: {\n type: String,\n default: null\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n return this.class\n }\n },\n emits: ['quick'],\n mounted () {\n const modal = document.getElementById(this.id || '')\n const self = this // eslint-disable-line @typescript-eslint/no-this-alias\n\n if (modal) {\n modal.addEventListener('hidden.bs.modal', function () {\n if (self.onClose) self.onClose()\n })\n modal.addEventListener('show.bs.modal', function () {\n if (self.onOpen) self.onOpen()\n })\n }\n }\n})\n</script>\n","<template>\n <div :id=\"id\" :class=\"`modal ${clazz}`\" tabindex=\"-1\" data-bs-backdrop=\"static\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <slot name=\"title\">Information</slot>\n <button v-if=\"quick\" class=\"cl-btn-quickaction\" @click=\"$emit('quick', quick)\">\n {{ quick }}\n </button>\n <a\n v-if=\"helpUrl\"\n class=\"modal-help\"\n :href=\"helpUrl\"\n target=\"_blank\"\n title=\"Show help in new window.\"\n ><i class=\"far fa-question-circle\" aria-hidden=\"true\"\n /></a>\n </div>\n <form\n v-if=\"form\"\n :id=\"`${id}-form`\"\n class=\"modal-body cl-form container\"\n novalidate\n @submit.prevent\n >\n <slot />\n <slot name=\"body\" />\n </form>\n <div v-else class=\"modal-body\">\n <slot />\n <slot name=\"body\" />\n </div>\n <div class=\"modal-footer\">\n <span class=\"modal-footer-left cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-left\"\n /></span>\n <span class=\"modal-footer-center cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer\"\n /></span>\n <span class=\"modal-footer-right cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-right\"\n /></span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModal',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: null\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n class: {\n type: String,\n default: null\n },\n helpUrl: {\n type: String,\n default: null\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n return this.class\n }\n },\n emits: ['quick'],\n mounted () {\n const modal = document.getElementById(this.id || '')\n const self = this // eslint-disable-line @typescript-eslint/no-this-alias\n\n if (modal) {\n modal.addEventListener('hidden.bs.modal', function () {\n if (self.onClose) self.onClose()\n })\n modal.addEventListener('show.bs.modal', function () {\n if (self.onOpen) self.onOpen()\n })\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModal from './template.vue'\n\nClModal.install = (Vue: App) => {\n Vue.component(ClModal.name ?? 'ClNoName', ClModal)\n}\n\nexport default ClModal\n","<template>\n <cl-modal-form\n :id=\"id\"\n :class=\"clazz\"\n :on-open=\"reset\"\n :disabled=\"!valid\"\n :spinner=\"spinner\"\n :valid=\"valid\"\n @ok=\"$emit('ok')\"\n :ok=\"ok ?? button\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body>\n <slot />\n <p>\n To confirm your intention, please type <code>{{ text }}</code> into this text field:\n </p>\n <cl-field\n ref=\"text\"\n type=\"text\"\n required\n :pattern=\"`^${text}$`\"\n class=\"text-center cl-field-monospace it-confirm\"\n autofocus\n @changed=\"validate()\"\n @keyup.enter=\"submit()\"\n />\n </template>\n </cl-modal-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalConfirm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-confirm'\n },\n class: {\n type: String,\n default: undefined\n },\n text: {\n type: String,\n default: 'confirm'\n },\n title: {\n type: String,\n default: 'Are you sure?'\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n quick: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n reset: function () {\n this.valid = false\n CL.clFormFieldReset(this.$refs.text, '')\n CL.clFormReset(`${this.id}-form`)\n },\n validate: function () {\n this.valid = this.$refs.text?.validateSilent()\n }\n }\n})\n</script>\n","<template>\n <cl-modal-form\n :id=\"id\"\n :class=\"clazz\"\n :on-open=\"reset\"\n :disabled=\"!valid\"\n :spinner=\"spinner\"\n :valid=\"valid\"\n @ok=\"$emit('ok')\"\n :ok=\"ok ?? button\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body>\n <slot />\n <p>\n To confirm your intention, please type <code>{{ text }}</code> into this text field:\n </p>\n <cl-field\n ref=\"text\"\n type=\"text\"\n required\n :pattern=\"`^${text}$`\"\n class=\"text-center cl-field-monospace it-confirm\"\n autofocus\n @changed=\"validate()\"\n @keyup.enter=\"submit()\"\n />\n </template>\n </cl-modal-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalConfirm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-confirm'\n },\n class: {\n type: String,\n default: undefined\n },\n text: {\n type: String,\n default: 'confirm'\n },\n title: {\n type: String,\n default: 'Are you sure?'\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n quick: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n reset: function () {\n this.valid = false\n CL.clFormFieldReset(this.$refs.text, '')\n CL.clFormReset(`${this.id}-form`)\n },\n validate: function () {\n this.valid = this.$refs.text?.validateSilent()\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModalConfirm from './template.vue'\n\nClModalConfirm.install = (Vue: App) => {\n Vue.component(ClModalConfirm.name ?? 'ClNoName', ClModalConfirm)\n}\n\nexport default ClModalConfirm\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n form\n :on-open=\"onOpen\"\n :on-close=\"onClose\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template v-if=\"$slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-else #title>\n {{ title }}\n </template>\n\n <template #body>\n <slot />\n <slot name=\"body\" />\n </template>\n <template #footer-left>\n <button type=\"button\" class=\"btn cl-color-secondary it-cancel\" data-bs-dismiss=\"modal\">\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n disabled: !valid,\n 'cl-btn-spinner': spinner\n }\"\n @click=\"submit()\"\n >\n <span>{{ ok }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModalForm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-form'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Form'\n },\n ok: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n spinner: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: true\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n submit: function () {\n if (this.valid) {\n this.$emit('ok')\n }\n }\n }\n})\n</script>\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n form\n :on-open=\"onOpen\"\n :on-close=\"onClose\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template v-if=\"$slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-else #title>\n {{ title }}\n </template>\n\n <template #body>\n <slot />\n <slot name=\"body\" />\n </template>\n <template #footer-left>\n <button type=\"button\" class=\"btn cl-color-secondary it-cancel\" data-bs-dismiss=\"modal\">\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n disabled: !valid,\n 'cl-btn-spinner': spinner\n }\"\n @click=\"submit()\"\n >\n <span>{{ ok }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModalForm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-form'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Form'\n },\n ok: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n spinner: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: true\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n submit: function () {\n if (this.valid) {\n this.$emit('ok')\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModalForm from './template.vue'\n\nClModalForm.install = (Vue: App) => {\n Vue.component(ClModalForm.name ?? 'ClNoName', ClModalForm)\n}\n\nexport default ClModalForm\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n :form=\"form\"\n :on-open=\"opened\"\n :on-close=\"closed\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body> <slot />{{ body }} </template>\n <template #footer-left>\n <button\n v-if=\"cancel\"\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"buttonCancel\"\n >\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n 'cl-btn-spinner': spinner\n }\"\n @click=\"buttonOk\"\n >\n <span>{{ ok ?? button }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalOk',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-ok'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Information'\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n body: {\n type: String,\n default: undefined\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: null\n },\n spinner: {\n type: Boolean,\n default: false\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n emits: ['ok', 'cancel', 'quick'],\n data () {\n return {\n emitted: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n methods: {\n buttonOk: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide() // hide first\n this.$emit('ok', CL.clModalValue(this.id))\n },\n buttonCancel: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide()\n this.$emit('cancel', CL.clModalValue(this.id))\n },\n opened: function () {\n this.emitted = false\n if (this.onOpen) this.onOpen()\n },\n closed: function () {\n // ESC press emits 'cancel', but shouldn’t fire double\n if (!this.emitted) {\n this.$emit('cancel', CL.clModalValue(this.id))\n }\n if (this.onClose) this.onClose()\n }\n }\n})\n</script>\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n :form=\"form\"\n :on-open=\"opened\"\n :on-close=\"closed\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body> <slot />{{ body }} </template>\n <template #footer-left>\n <button\n v-if=\"cancel\"\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"buttonCancel\"\n >\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n 'cl-btn-spinner': spinner\n }\"\n @click=\"buttonOk\"\n >\n <span>{{ ok ?? button }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalOk',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-ok'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Information'\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n body: {\n type: String,\n default: undefined\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: null\n },\n spinner: {\n type: Boolean,\n default: false\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n emits: ['ok', 'cancel', 'quick'],\n data () {\n return {\n emitted: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n methods: {\n buttonOk: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide() // hide first\n this.$emit('ok', CL.clModalValue(this.id))\n },\n buttonCancel: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide()\n this.$emit('cancel', CL.clModalValue(this.id))\n },\n opened: function () {\n this.emitted = false\n if (this.onOpen) this.onOpen()\n },\n closed: function () {\n // ESC press emits 'cancel', but shouldn’t fire double\n if (!this.emitted) {\n this.$emit('cancel', CL.clModalValue(this.id))\n }\n if (this.onClose) this.onClose()\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModalOk from './template.vue'\n\nClModalOk.install = (Vue: App) => {\n Vue.component(ClModalOk.name ?? 'ClNoName', ClModalOk)\n}\n\nexport default ClModalOk\n","<template>\n <input\n :checked=\"clThemeSetup()\"\n @change=\"toggleTheme\"\n id=\"cl-mode-dark\"\n type=\"checkbox\"\n class=\"cl-nav-checkbox\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n />\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-light\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-sun fa-fw\"></i> Light mode\n </label>\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-dark\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-moon fa-fw\"></i> Dark mode\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClNavItemDarkMode',\n inheritAttrs: false,\n methods: {\n clThemeSetup: CL.clThemeSetup,\n toggleTheme: function (e: Event): void {\n CL.clThemeSetDark((e.target as HTMLInputElement).checked)\n }\n }\n})\n</script>\n","<template>\n <input\n :checked=\"clThemeSetup()\"\n @change=\"toggleTheme\"\n id=\"cl-mode-dark\"\n type=\"checkbox\"\n class=\"cl-nav-checkbox\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n />\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-light\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-sun fa-fw\"></i> Light mode\n </label>\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-dark\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-moon fa-fw\"></i> Dark mode\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClNavItemDarkMode',\n inheritAttrs: false,\n methods: {\n clThemeSetup: CL.clThemeSetup,\n toggleTheme: function (e: Event): void {\n CL.clThemeSetDark((e.target as HTMLInputElement).checked)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClNavItemDarkMode from './template.vue'\n\nClNavItemDarkMode.install = (Vue: App) => {\n Vue.component(ClNavItemDarkMode.name ?? 'ClNoName', ClNavItemDarkMode)\n}\n\nexport default ClNavItemDarkMode\n","export function clSidenavToggle () {\n const checkbox = document.getElementById('cl-nav-side')\n if (checkbox) {\n if (checkbox.checked) {\n checkbox.parentNode.classList.add('cl-nav-side-open')\n\n try {\n localStorage.setItem('sidenavOpen', 'true')\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n } else {\n checkbox.parentNode.classList.remove('cl-nav-side-open')\n\n try {\n localStorage.setItem('sidenavOpen', 'false')\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n }\n }\n}\n\nexport function clSidenavSetup () {\n // open/close sidenav for initial state\n clSidenavOpen(clSidenavInitiallyOpen())\n\n // add click/close handler to anchors\n document.querySelectorAll('.cl-nav-drawer a').forEach(a => {\n a.addEventListener('click', () => {\n if (clSidenavIsMobile()) {\n clSidenavOpen(false)\n\n try {\n localStorage.setItem('sidenavOpen', 'false')\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n }\n })\n })\n\n // listen for open/close to save state\n document.getElementById('cl-nav-side')?.addEventListener('change', function () {\n clSidenavToggle()\n })\n\n // remember open/close state of details/dropdowns\n document.querySelectorAll('.cl-nav-drawer details[id]').forEach(details => {\n details.addEventListener('toggle', event => {\n try {\n localStorage.setItem(`cl-nav-${details.id}`, event.target.hasAttribute('open'))\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n })\n\n // also set/recover initial state\n try {\n const open = localStorage.getItem(`cl-nav-${details.id}`)\n if (open === 'true') details.open = true\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n })\n\n // enable drawer animations a little late\n setTimeout(function () {\n document.querySelectorAll('body').forEach(body => {\n body.classList.add('cl-animate')\n })\n }, 1000)\n}\n\nfunction clSidenavOpen (value) {\n const checkbox = document.getElementById('cl-nav-side')\n if (checkbox) {\n checkbox.checked = value\n }\n}\n\nfunction clSidenavIsMobile () {\n return Math.max(document?.documentElement?.clientWidth || 0, window?.innerWidth || 0) < 1200\n}\n\nfunction clSidenavInitiallyOpen () {\n const stored = localStorage.getItem('sidenavOpen')\n if (stored == null) {\n return !clSidenavIsMobile()\n } else {\n return JSON.parse(stored)\n }\n}\n","<template>\n <input\n id=\"cl-nav-side\"\n type=\"checkbox\"\n :class=\"`cl-nav-checkbox${clazz}`\"\n @change=\"toggle\"\n tabindex=\"-1\"\n />\n <nav class=\"cl-nav-side\">\n <label class=\"cl-nav-backdrop\" for=\"cl-nav-side\" />\n <div class=\"cl-nav-drawer\">\n <div data-simplebar>\n <slot />\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clSidenavToggle, clSidenavSetup } from './Side.js'\n\nexport default defineComponent({\n name: 'ClNavSide',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n this.setup()\n },\n methods: {\n toggle: function () {\n clSidenavToggle()\n },\n setup: function () {\n this.$nextTick(() => {\n clSidenavSetup()\n })\n }\n }\n})\n</script>\n","<template>\n <input\n id=\"cl-nav-side\"\n type=\"checkbox\"\n :class=\"`cl-nav-checkbox${clazz}`\"\n @change=\"toggle\"\n tabindex=\"-1\"\n />\n <nav class=\"cl-nav-side\">\n <label class=\"cl-nav-backdrop\" for=\"cl-nav-side\" />\n <div class=\"cl-nav-drawer\">\n <div data-simplebar>\n <slot />\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clSidenavToggle, clSidenavSetup } from './Side.js'\n\nexport default defineComponent({\n name: 'ClNavSide',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n this.setup()\n },\n methods: {\n toggle: function () {\n clSidenavToggle()\n },\n setup: function () {\n this.$nextTick(() => {\n clSidenavSetup()\n })\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClNavSide from './template.vue'\n\nClNavSide.install = (Vue: App) => {\n Vue.component(ClNavSide.name ?? 'ClNoName', ClNavSide)\n}\n\nexport default ClNavSide\n","<template>\n <nav id=\"cl-nav-top\" :class=\"`cl-nav-top${clazz}`\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12 cl-grid-flex-centered\">\n <label class=\"cl-nav-side-burger\" for=\"cl-nav-side\" aria-label=\"Navigation\"\n ><i class=\"fas fa-bars\" aria-hidden=\"true\"\n /></label>\n <slot /><slot name=\"title\" />\n </div>\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClNavTop',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.$route.meta?.fluid\n },\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","<template>\n <nav id=\"cl-nav-top\" :class=\"`cl-nav-top${clazz}`\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12 cl-grid-flex-centered\">\n <label class=\"cl-nav-side-burger\" for=\"cl-nav-side\" aria-label=\"Navigation\"\n ><i class=\"fas fa-bars\" aria-hidden=\"true\"\n /></label>\n <slot /><slot name=\"title\" />\n </div>\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClNavTop',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.$route.meta?.fluid\n },\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClNavTop from './template.vue'\n\nClNavTop.install = (Vue: App) => {\n Vue.component(ClNavTop.name ?? 'ClNoName', ClNavTop)\n}\n\nexport default ClNavTop\n","<template>\n <span class=\"cl-org\">{{ name }}<slot /> </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClOrg',\n props: {\n name: {\n type: String,\n default: 'No organization'\n }\n }\n})\n</script>\n","<template>\n <span class=\"cl-org\">{{ name }}<slot /> </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClOrg',\n props: {\n name: {\n type: String,\n default: 'No organization'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClOrg from './template.vue'\n\nClOrg.install = (Vue: App) => {\n Vue.component(ClOrg.name ?? 'ClNoName', ClOrg)\n}\n\nexport default ClOrg\n","<template>\n <cl-section-headline\n v-if=\"!fullscreen\"\n :id=\"id ?? $route.name\"\n :title=\"title ?? $route.meta?.title ?? 'Castlabs'\"\n :class=\"clazz\"\n :fluid=\"$route.meta?.fluid\"\n />\n <div v-if=\"loading\" class=\"cl-page-spinner\">\n <cl-spinner />\n </div>\n <slot v-else-if=\"notFound\" name=\"notFound\">\n <cl-section-main :fluid=\"$route.meta?.fluid\">\n <p class=\"cl-p-large\">Hmm, it seems we can’t find what you’re looking for.</p>\n <p class=\"alert cl-alert-info\">This resource may have been moved or it might have expired.</p>\n <button type=\"button\" class=\"btn cl-color-secondary cl-spacing-large\" @click=\"back\">\n <span>Back</span>\n </button>\n </cl-section-main>\n </slot>\n <div v-else-if=\"fullscreen\" class=\"cl-page-fullscreen\">\n <slot />\n </div>\n <slot v-else />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clModalIsShown } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClPage',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: undefined\n },\n loading: {\n type: Boolean,\n default: false\n },\n notFound: {\n type: Boolean,\n default: false\n },\n fullscreen: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n document.addEventListener('keydown', this.keydown)\n },\n unmounted () {\n document.removeEventListener('keydown', this.keydown)\n },\n methods: {\n back () {\n history.go(-1)\n },\n keydown (keydown: KeyboardEvent) {\n switch (keydown.key) {\n case 'Escape':\n if (this.$route.meta.backOnEsc && !clModalIsShown()) {\n const backbutton = document.querySelector('.cl-back-cancel-ok-back') as\n | HTMLElement\n | undefined\n if (backbutton) {\n backbutton.click()\n return\n }\n this.$router.go(-1)\n }\n break\n }\n }\n }\n})\n</script>\n","<template>\n <cl-section-headline\n v-if=\"!fullscreen\"\n :id=\"id ?? $route.name\"\n :title=\"title ?? $route.meta?.title ?? 'Castlabs'\"\n :class=\"clazz\"\n :fluid=\"$route.meta?.fluid\"\n />\n <div v-if=\"loading\" class=\"cl-page-spinner\">\n <cl-spinner />\n </div>\n <slot v-else-if=\"notFound\" name=\"notFound\">\n <cl-section-main :fluid=\"$route.meta?.fluid\">\n <p class=\"cl-p-large\">Hmm, it seems we can’t find what you’re looking for.</p>\n <p class=\"alert cl-alert-info\">This resource may have been moved or it might have expired.</p>\n <button type=\"button\" class=\"btn cl-color-secondary cl-spacing-large\" @click=\"back\">\n <span>Back</span>\n </button>\n </cl-section-main>\n </slot>\n <div v-else-if=\"fullscreen\" class=\"cl-page-fullscreen\">\n <slot />\n </div>\n <slot v-else />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clModalIsShown } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClPage',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: undefined\n },\n loading: {\n type: Boolean,\n default: false\n },\n notFound: {\n type: Boolean,\n default: false\n },\n fullscreen: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n document.addEventListener('keydown', this.keydown)\n },\n unmounted () {\n document.removeEventListener('keydown', this.keydown)\n },\n methods: {\n back () {\n history.go(-1)\n },\n keydown (keydown: KeyboardEvent) {\n switch (keydown.key) {\n case 'Escape':\n if (this.$route.meta.backOnEsc && !clModalIsShown()) {\n const backbutton = document.querySelector('.cl-back-cancel-ok-back') as\n | HTMLElement\n | undefined\n if (backbutton) {\n backbutton.click()\n return\n }\n this.$router.go(-1)\n }\n break\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClPage from './template.vue'\n\nClPage.install = (Vue: App) => {\n Vue.component(ClPage.name ?? 'ClNoName', ClPage)\n}\n\nexport default ClPage\n","<template>\n <nav v-if=\"pager?.pages?.length > 1\" class=\"col-12 cl-spacing-medium\">\n <ul class=\"pagination\">\n <li v-if=\"pager.previous\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.previous)\"\n aria-label=\"Prev\"\n >\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </li>\n\n <template v-for=\"(page, index) of pager.pages\" :key=\"page\">\n <li v-if=\"index > 0 && pager.pages[index - 1] !== page - 1\" class=\"page-item disabled\">\n …\n </li>\n <li class=\"page-item\" :class=\"{ active: page === pager.current }\">\n <button class=\"page-link\" @click=\"$emit('page', page)\">\n {{ page }}\n </button>\n </li>\n </template>\n\n <li v-if=\"pager.next\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.next)\"\n aria-label=\"Next\"\n >\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </li>\n </ul>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport type Pager = {\n previous: number | null\n next: number | null\n current: number\n pages: number[]\n}\n\n/**\n * Fetch a pager for given parameters, list length, pagesize, current page\n *\n * @param {Number} items Length of the list in items/records.\n * @param {Number} pagesize Size of a page in items/records.\n * @param {Number} current Selected page\n * @param {Number} window How many pages will appear before/after the current one.\n * @return {Object} Page object.\n */\nexport function calculatePageObject (\n items: number,\n pagesize: number,\n current: number,\n window: number\n): Pager {\n const pages = []\n const total = Math.ceil(items / pagesize)\n if (current < 1) current = 1\n if (current > total) current = total\n for (let page = 1; page <= total; page++) {\n if ((page >= current - window && page <= current + window) || page === 1 || page === total) {\n pages.push(page)\n }\n }\n return {\n previous: current > 1 ? current - 1 : null,\n next: current < total ? current + 1 : null,\n current,\n pages\n }\n}\n\nexport default defineComponent({\n name: 'ClPagination',\n props: {\n items: {\n type: Number,\n default: 0\n },\n pagesize: {\n type: Number,\n default: 25\n },\n current: {\n type: Number,\n default: 1\n },\n window: {\n type: Number,\n default: 3\n },\n test: {\n type: Boolean,\n default: false\n }\n },\n emits: ['page'],\n computed: {\n pager: function (): Pager {\n return calculatePageObject(this.items, this.pagesize, this.current, this.window)\n }\n }\n})\n</script>\n","<template>\n <nav v-if=\"pager?.pages?.length > 1\" class=\"col-12 cl-spacing-medium\">\n <ul class=\"pagination\">\n <li v-if=\"pager.previous\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.previous)\"\n aria-label=\"Prev\"\n >\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </li>\n\n <template v-for=\"(page, index) of pager.pages\" :key=\"page\">\n <li v-if=\"index > 0 && pager.pages[index - 1] !== page - 1\" class=\"page-item disabled\">\n …\n </li>\n <li class=\"page-item\" :class=\"{ active: page === pager.current }\">\n <button class=\"page-link\" @click=\"$emit('page', page)\">\n {{ page }}\n </button>\n </li>\n </template>\n\n <li v-if=\"pager.next\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.next)\"\n aria-label=\"Next\"\n >\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </li>\n </ul>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport type Pager = {\n previous: number | null\n next: number | null\n current: number\n pages: number[]\n}\n\n/**\n * Fetch a pager for given parameters, list length, pagesize, current page\n *\n * @param {Number} items Length of the list in items/records.\n * @param {Number} pagesize Size of a page in items/records.\n * @param {Number} current Selected page\n * @param {Number} window How many pages will appear before/after the current one.\n * @return {Object} Page object.\n */\nexport function calculatePageObject (\n items: number,\n pagesize: number,\n current: number,\n window: number\n): Pager {\n const pages = []\n const total = Math.ceil(items / pagesize)\n if (current < 1) current = 1\n if (current > total) current = total\n for (let page = 1; page <= total; page++) {\n if ((page >= current - window && page <= current + window) || page === 1 || page === total) {\n pages.push(page)\n }\n }\n return {\n previous: current > 1 ? current - 1 : null,\n next: current < total ? current + 1 : null,\n current,\n pages\n }\n}\n\nexport default defineComponent({\n name: 'ClPagination',\n props: {\n items: {\n type: Number,\n default: 0\n },\n pagesize: {\n type: Number,\n default: 25\n },\n current: {\n type: Number,\n default: 1\n },\n window: {\n type: Number,\n default: 3\n },\n test: {\n type: Boolean,\n default: false\n }\n },\n emits: ['page'],\n computed: {\n pager: function (): Pager {\n return calculatePageObject(this.items, this.pagesize, this.current, this.window)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClPagination from './template.vue'\n\nClPagination.install = (Vue: App) => {\n Vue.component(ClPagination.name ?? 'ClNoName', ClPagination)\n}\n\nexport default ClPagination\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClPlan',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-plan '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ` cl-color-red`\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClPlan',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-plan '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ` cl-color-red`\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClPlan from './template.vue'\n\nClPlan.install = (Vue: App) => {\n Vue.component(ClPlan.name ?? 'ClNoName', ClPlan)\n}\n\nexport default ClPlan\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClRole',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-role '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-role-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClRole',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-role '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-role-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClRole from './template.vue'\n\nClRole.install = (Vue: App) => {\n Vue.component(ClRole.name ?? 'ClNoName', ClRole)\n}\n\nexport default ClRole\n","<template>\n <cl-section-main class=\"cl-section-details it-section-details\">\n <dl class=\"cl-dl cl-tight\">\n <template v-if=\"myId\">\n <dt>ID</dt>\n <dd>\n <cl-copy code>{{ myId }}</cl-copy>\n </dd>\n </template>\n <template v-if=\"created\">\n <dt>Created</dt>\n <dd>{{ created instanceof Date ? clFormatDateTimeUTC(created, true) : created }}</dd>\n </template>\n <template v-if=\"updated\">\n <dt>Updated</dt>\n <dd>{{ updated instanceof Date ? clFormatDateTimeUTC(updated, true) : updated }}</dd>\n </template>\n <slot />\n </dl>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clFormatDateTimeUTC } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClSectionDetails',\n props: {\n myId: {\n type: String,\n default: null\n },\n created: {\n type: [String, Date],\n default: null\n },\n updated: {\n type: [String, Date],\n default: null\n }\n },\n methods: {\n clFormatDateTimeUTC\n }\n})\n</script>\n\n<style lang=\"scss\"></style>\n","<template>\n <cl-section-main class=\"cl-section-details it-section-details\">\n <dl class=\"cl-dl cl-tight\">\n <template v-if=\"myId\">\n <dt>ID</dt>\n <dd>\n <cl-copy code>{{ myId }}</cl-copy>\n </dd>\n </template>\n <template v-if=\"created\">\n <dt>Created</dt>\n <dd>{{ created instanceof Date ? clFormatDateTimeUTC(created, true) : created }}</dd>\n </template>\n <template v-if=\"updated\">\n <dt>Updated</dt>\n <dd>{{ updated instanceof Date ? clFormatDateTimeUTC(updated, true) : updated }}</dd>\n </template>\n <slot />\n </dl>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clFormatDateTimeUTC } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClSectionDetails',\n props: {\n myId: {\n type: String,\n default: null\n },\n created: {\n type: [String, Date],\n default: null\n },\n updated: {\n type: [String, Date],\n default: null\n }\n },\n methods: {\n clFormatDateTimeUTC\n }\n})\n</script>\n\n<style lang=\"scss\"></style>\n","import type { App } from 'vue'\nimport COMPONENT from './template.vue'\n\nCOMPONENT.install = (Vue: App) => {\n Vue.component(COMPONENT.name ?? 'ClNoName', COMPONENT)\n}\n\nexport default COMPONENT\n","<template>\n <section class=\"cl-section cl-section-form cl-color-haze\">\n <form :id=\"id\" novalidate :class=\"containerClass\" @submit.prevent>\n <fieldset class=\"row\" :disabled=\"disabled\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </fieldset>\n </form>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionForm',\n props: {\n id: {\n type: String,\n default: 'FORM'\n },\n fluid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid ? 'cl-form container-fluid' : 'cl-form container'\n }\n }\n})\n</script>\n","<template>\n <section class=\"cl-section cl-section-form cl-color-haze\">\n <form :id=\"id\" novalidate :class=\"containerClass\" @submit.prevent>\n <fieldset class=\"row\" :disabled=\"disabled\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </fieldset>\n </form>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionForm',\n props: {\n id: {\n type: String,\n default: 'FORM'\n },\n fluid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid ? 'cl-form container-fluid' : 'cl-form container'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionForm from './template.vue'\n\nClSectionForm.install = (Vue: App) => {\n Vue.component(ClSectionForm.name ?? 'ClNoName', ClSectionForm)\n}\n\nexport default ClSectionForm\n","<template>\n <section class=\"cl-section cl-section-headline\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12\">\n <h1 v-if=\"title\">\n {{ title\n }}<a\n v-if=\"href\"\n :href=\"href\"\n class=\"cl-headline-help-icon\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Help\"\n >\n <i class=\"fas fa-question-circle\" aria-hidden=\"true\" />\n </a>\n </h1>\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionHeadline',\n props: {\n fluid: {\n type: Boolean,\n default: false\n },\n title: {\n type: String,\n default: undefined\n },\n href: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid\n ? 'container-fluid cl-container-spacing-small'\n : 'container cl-container-spacing-small'\n }\n }\n})\n</script>\n","<template>\n <section class=\"cl-section cl-section-headline\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12\">\n <h1 v-if=\"title\">\n {{ title\n }}<a\n v-if=\"href\"\n :href=\"href\"\n class=\"cl-headline-help-icon\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Help\"\n >\n <i class=\"fas fa-question-circle\" aria-hidden=\"true\" />\n </a>\n </h1>\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionHeadline',\n props: {\n fluid: {\n type: Boolean,\n default: false\n },\n title: {\n type: String,\n default: undefined\n },\n href: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid\n ? 'container-fluid cl-container-spacing-small'\n : 'container cl-container-spacing-small'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionHeadline from './template.vue'\n\nClSectionHeadline.install = (Vue: App) => {\n Vue.component(ClSectionHeadline.name ?? 'ClNoName', ClSectionHeadline)\n}\n\nexport default ClSectionHeadline\n","<template>\n <section :class=\"sectionClass\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionMain',\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n sectionClass: function () {\n return this.alternate ? 'cl-section-alternate' : 'cl-section'\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","<template>\n <section :class=\"sectionClass\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionMain',\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n sectionClass: function () {\n return this.alternate ? 'cl-section-alternate' : 'cl-section'\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionMain from './template.vue'\n\nClSectionMain.install = (Vue: App) => {\n Vue.component(ClSectionMain.name ?? 'ClNoName', ClSectionMain)\n}\n\nexport default ClSectionMain\n","<template>\n <cl-section-main :class=\"sectionClass\" no-col :fluid=\"isFluid\">\n <div :class=\"mainClass\"><slot /><slot name=\"main\" /></div>\n <div v-if=\"$slots.side\" :class=\"sideClass\">\n <slot name=\"side\" />\n </div>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport ClSectionMain from '../ClSectionMain/template.vue'\n\nexport default defineComponent({\n name: 'ClSectionMainSide',\n components: {\n ClSectionMain\n },\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n mainClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-9' : 'col-lg-8')\n },\n sideClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-3' : 'col-lg-4')\n },\n sectionClass: function () {\n return 'cl-section-main-side ' + (this.alternate ? 'cl-section-alternate' : '')\n }\n }\n})\n</script>\n","<template>\n <cl-section-main :class=\"sectionClass\" no-col :fluid=\"isFluid\">\n <div :class=\"mainClass\"><slot /><slot name=\"main\" /></div>\n <div v-if=\"$slots.side\" :class=\"sideClass\">\n <slot name=\"side\" />\n </div>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport ClSectionMain from '../ClSectionMain/template.vue'\n\nexport default defineComponent({\n name: 'ClSectionMainSide',\n components: {\n ClSectionMain\n },\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n mainClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-9' : 'col-lg-8')\n },\n sideClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-3' : 'col-lg-4')\n },\n sectionClass: function () {\n return 'cl-section-main-side ' + (this.alternate ? 'cl-section-alternate' : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionMainSide from './template.vue'\n\nClSectionMainSide.install = (Vue: App) => {\n Vue.component(ClSectionMainSide.name ?? 'ClNoName', ClSectionMainSide)\n}\n\nexport default ClSectionMainSide\n","<template>\n <div class=\"cl-spinner\">{{ title }}<i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\" /></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSpinner',\n props: {\n title: {\n type: String,\n default: 'Loading ...'\n }\n }\n})\n</script>\n","<template>\n <div class=\"cl-spinner\">{{ title }}<i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\" /></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSpinner',\n props: {\n title: {\n type: String,\n default: 'Loading ...'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSpinner from './template.vue'\n\nClSpinner.install = (Vue: App) => {\n Vue.component(ClSpinner.name ?? 'ClNoName', ClSpinner)\n}\n\nexport default ClSpinner\n","export function clTableSetupResize (id, auto = false) {\n document.querySelectorAll(`#${id} .cl-resizer`).forEach(resizer => {\n clTableSetResizeListeners(resizer, auto)\n })\n}\n\nexport function clTableSortStatic (id, col) {\n const getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent\n\n const comparer = (idx, asc) => (a, b) =>\n ((v1, v2) =>\n v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2)\n ? v1 - v2\n : v1.toString().localeCompare(v2))(\n getCellValue(asc ? a : b, idx),\n getCellValue(asc ? b : a, idx)\n )\n\n const table = document.getElementById(id)\n const tbody = table.querySelector('tbody')\n Array.from(tbody.querySelectorAll('tr'))\n .sort(comparer(col, (this.asc = !this.asc)))\n .forEach(tr => tbody.appendChild(tr))\n\n table.querySelectorAll('thead i').forEach(i => i.classList.remove('fa-sort-up', 'fa-sort-down'))\n table\n .querySelector(`th:nth-child(${col + 1}) i`)\n .classList.add(this.asc ? 'fa-sort-up' : 'fa-sort-down')\n}\n\nlet lastX = 0\nlet nextCol = null\n\nfunction clTableSetResizeListeners (resizer, auto = false) {\n lastX = 0\n nextCol = null\n resizer.addEventListener('mousedown', mousedown)\n document.addEventListener('mousemove', mousemove)\n document.addEventListener('mouseup', mouseup)\n if (auto) {\n document.addEventListener('click', mouseclick)\n }\n}\n\nconst mousedown = mousedown => {\n mousedown.preventDefault()\n nextCol = mousedown.target ? mousedown.target.parentElement : null\n lastX = mousedown.pageX\n}\n\nconst mousemove = mousemove => {\n if (nextCol !== null) {\n mousemove.preventDefault()\n const delta = mousemove.pageX - lastX\n lastX = mousemove.pageX\n\n const colIndex = getColIndex(nextCol) - 1\n const id = mousemove.target?.closest('table')?.id ?? 'unknown'\n const nowrap = !!document.querySelector(`#${id}.cl-table-nowrap`) // are we in nowrap mode?\n if (nowrap) {\n // in nowrap mode we only adjust the thead col\n document.querySelectorAll(`#${id} tr th:nth-child(${colIndex})`).forEach(cel => {\n const width =\n (cel.style.maxWidth === '' ? cel.offsetWidth : parseInt(cel.style.maxWidth)) + delta\n cel.style.width = (width > 32 ? width : 32) + 'px'\n cel.style.maxWidth = (width > 32 ? width : 32) + 'px'\n cel.clWidth = 0\n })\n } else {\n // in regular mode we shrink one and enlarge the other col\n document.querySelectorAll(`#${id} tr td:nth-child(${colIndex})`).forEach(cel => {\n const width = cel.offsetWidth + delta\n cel.style.width = (width > 32 ? width : 32) + 'px'\n })\n document.querySelectorAll(`#${id} tr td:nth-child(${colIndex + 1})`).forEach(cel => {\n const width = cel.offsetWidth - delta\n cel.style.width = (width > 32 ? width : 32) + 'px'\n })\n }\n }\n}\n\nconst mouseup = mouseup => {\n if (nextCol !== null) {\n mouseup.preventDefault()\n lastX = 0\n nextCol = null\n }\n}\n\nconst mouseclick = click => {\n if (click.detail === 2) {\n click.preventDefault()\n\n const table = click.target?.closest('table')\n const id = table?.id ?? 'unknown'\n const th = click.target?.closest('th')\n const colIndex = Array.from(th.parentElement.children).indexOf(th)\n\n // set all to something small so scrollWidth is correct for all-smaller items (head only)\n document.querySelectorAll(`#${id} th:nth-child(${colIndex})`).forEach(cel => {\n cel.style.width = '1px'\n cel.style.maxWidth = '1px'\n })\n\n // iterate over all rows and col index (thead + tbody), find max cel width\n let maxCellWidth = 0\n document\n .querySelectorAll(`#${id} th:nth-child(${colIndex}), #${id} td:nth-child(${colIndex})`)\n .forEach(cel => {\n if ((cel.colSpan ?? 1) === 1) {\n const cellWidth = cel.scrollWidth\n maxCellWidth = cellWidth > maxCellWidth ? cellWidth : maxCellWidth\n }\n })\n\n // set all outer width to inner (head only)\n document.querySelectorAll(`#${id} th:nth-child(${colIndex})`).forEach(cel => {\n if (cel.clWidth === maxCellWidth) {\n // revert to un-maximized\n cel.clWidth = 0\n cel.style.removeProperty('width')\n cel.style.removeProperty('max-width')\n } else {\n // maximize\n const padding = 8 * 2\n cel.clWidth = maxCellWidth\n cel.style.width = `${cel.clWidth + padding}px`\n cel.style.maxWidth = `${cel.clWidth + padding}px`\n }\n })\n }\n}\n\nfunction getColIndex (col) {\n // calculate index of a col in a row, 1-based\n let colNo = 0\n while (col) {\n colNo++\n col = col.previousElementSibling\n }\n return colNo\n}\n","<template>\n <div :id=\"id\" :class=\"`cl-table-scroll ${clazzOuter}`\">\n <table :id=\"$uid\" :class=\"`cl-table-data ${clazz}`\">\n <thead>\n <tr>\n <slot name=\"header\" />\n </tr>\n </thead>\n <tbody v-if=\"rows >= 1\">\n <slot /><slot name=\"body\" />\n </tbody>\n <tbody v-else-if=\"rows === 0\">\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n {{ noDataText }}\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n <cl-spinner />\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"$slots.footer\">\n <tr>\n <slot name=\"footer\" />\n </tr>\n </tfoot>\n <slot name=\"tfoot\" />\n </table>\n </div>\n <cl-modal-ok v-if=\"columns.length > 0\" :id=\"$uid + '-settings'\" title=\"Table settings\">\n <p>Which of the following columns would you like to see?</p>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index < columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index >= columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n </div>\n </div>\n <hr />\n <cl-field-check :value=\"compact\" v-model=\"compact\" class=\"it-table-modal-tight\"\n >Tight table layout</cl-field-check\n >\n </cl-modal-ok>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\nimport { clTableSetupResize } from './Table.js'\n\nexport default defineComponent({\n name: 'ClTable',\n inheritAttrs: false,\n props: {\n id: {\n type: String as PropType<string>,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n nowrap: {\n type: Boolean,\n default: false\n },\n noDataText: {\n type: String,\n default: 'No data available.'\n },\n rows: {\n type: Number,\n default: 1\n },\n nonresponsive: {\n type: Boolean,\n default: false\n },\n hideCols: {\n type: Array as PropType<string[]>,\n default: undefined\n },\n fixed: {\n type: Boolean,\n default: false\n },\n tight: {\n type: Boolean,\n default: false\n },\n autoResize: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n show: Array(32).fill(true),\n compact: this.tight\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n let c = ''\n if (this.nonresponsive) c += ' cl-table-nonresponsive'\n if (this.nowrap) c += ' cl-table-nowrap'\n if (this.fixed) c += ' cl-table-fixed'\n if (this.compact) c += ' cl-tight'\n for (let i = 1; i <= this.show.length; i++) {\n if (!this.show[i - 1]) c += ` cl-table-col-${i}-hide`\n }\n return c\n },\n clazzOuter: function (): string {\n return this.class\n },\n columns: function (): string[] {\n return (this.hideCols ?? []).map(colname => colname.replace(/\\*$/, ''))\n }\n },\n watch: {\n rows: function () {\n this.setupResizer()\n }\n },\n created () {\n if (this.hideCols) {\n for (let i = 0; i < this.columns.length; i++) {\n if (this.hideCols[i] !== this.columns[i]) {\n // if they don’t match, the original hideCol had an asterisk\n this.show[i] = false\n }\n }\n }\n },\n mounted () {\n this.setupResizer()\n },\n methods: {\n setupResizer: function () {\n this.$nextTick(() => {\n clTableSetupResize((this as any).$uid, this.autoResize) // eslint-disable-line @typescript-eslint/no-explicit-any\n })\n }\n }\n})\n</script>\n","<template>\n <div :id=\"id\" :class=\"`cl-table-scroll ${clazzOuter}`\">\n <table :id=\"$uid\" :class=\"`cl-table-data ${clazz}`\">\n <thead>\n <tr>\n <slot name=\"header\" />\n </tr>\n </thead>\n <tbody v-if=\"rows >= 1\">\n <slot /><slot name=\"body\" />\n </tbody>\n <tbody v-else-if=\"rows === 0\">\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n {{ noDataText }}\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n <cl-spinner />\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"$slots.footer\">\n <tr>\n <slot name=\"footer\" />\n </tr>\n </tfoot>\n <slot name=\"tfoot\" />\n </table>\n </div>\n <cl-modal-ok v-if=\"columns.length > 0\" :id=\"$uid + '-settings'\" title=\"Table settings\">\n <p>Which of the following columns would you like to see?</p>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index < columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index >= columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n </div>\n </div>\n <hr />\n <cl-field-check :value=\"compact\" v-model=\"compact\" class=\"it-table-modal-tight\"\n >Tight table layout</cl-field-check\n >\n </cl-modal-ok>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\nimport { clTableSetupResize } from './Table.js'\n\nexport default defineComponent({\n name: 'ClTable',\n inheritAttrs: false,\n props: {\n id: {\n type: String as PropType<string>,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n nowrap: {\n type: Boolean,\n default: false\n },\n noDataText: {\n type: String,\n default: 'No data available.'\n },\n rows: {\n type: Number,\n default: 1\n },\n nonresponsive: {\n type: Boolean,\n default: false\n },\n hideCols: {\n type: Array as PropType<string[]>,\n default: undefined\n },\n fixed: {\n type: Boolean,\n default: false\n },\n tight: {\n type: Boolean,\n default: false\n },\n autoResize: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n show: Array(32).fill(true),\n compact: this.tight\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n let c = ''\n if (this.nonresponsive) c += ' cl-table-nonresponsive'\n if (this.nowrap) c += ' cl-table-nowrap'\n if (this.fixed) c += ' cl-table-fixed'\n if (this.compact) c += ' cl-tight'\n for (let i = 1; i <= this.show.length; i++) {\n if (!this.show[i - 1]) c += ` cl-table-col-${i}-hide`\n }\n return c\n },\n clazzOuter: function (): string {\n return this.class\n },\n columns: function (): string[] {\n return (this.hideCols ?? []).map(colname => colname.replace(/\\*$/, ''))\n }\n },\n watch: {\n rows: function () {\n this.setupResizer()\n }\n },\n created () {\n if (this.hideCols) {\n for (let i = 0; i < this.columns.length; i++) {\n if (this.hideCols[i] !== this.columns[i]) {\n // if they don’t match, the original hideCol had an asterisk\n this.show[i] = false\n }\n }\n }\n },\n mounted () {\n this.setupResizer()\n },\n methods: {\n setupResizer: function () {\n this.$nextTick(() => {\n clTableSetupResize((this as any).$uid, this.autoResize) // eslint-disable-line @typescript-eslint/no-explicit-any\n })\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTable from './template.vue'\n\nClTable.install = (Vue: App) => {\n Vue.component(ClTable.name ?? 'ClNoName', ClTable)\n}\n\nexport default ClTable\n","<template>\n <td :class=\"condensed ? 'cl-font-condensed' : ''\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCel',\n props: {\n condensed: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","<template>\n <td :class=\"condensed ? 'cl-font-condensed' : ''\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCel',\n props: {\n condensed: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCel from './template.vue'\n\nClTableCel.install = (Vue: App) => {\n Vue.component(ClTableCel.name ?? 'ClNoName', ClTableCel)\n}\n\nexport default ClTableCel\n","<template>\n <td class=\"cl-td-actions\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelActions',\n props: {\n content: {\n // TODO remove? move to cel-links?\n type: String,\n default: ''\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-actions\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelActions',\n props: {\n content: {\n // TODO remove? move to cel-links?\n type: String,\n default: ''\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelActions from './template.vue'\n\nClTableCelActions.install = (Vue: App) => {\n Vue.component(ClTableCelActions.name ?? 'ClNoName', ClTableCelActions)\n}\n\nexport default ClTableCelActions\n","<template>\n <td class=\"cl-td-audit\">\n <i v-tooltip:left=\"value\" class=\"fas fa-info-circle\" aria-hidden=\"true\" />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelAudit',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n value: {\n type: String,\n default: '???'\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-audit\">\n <i v-tooltip:left=\"value\" class=\"fas fa-info-circle\" aria-hidden=\"true\" />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelAudit',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n value: {\n type: String,\n default: '???'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelAudit from './template.vue'\n\nClTableCelAudit.install = (Vue: App) => {\n Vue.component(ClTableCelAudit.name ?? 'ClNoName', ClTableCelAudit)\n}\n\nexport default ClTableCelAudit\n","<template>\n <td class=\"cl-td-boolean\">\n <i :class=\"`fas ${value ? 'fa-check' : 'fa-minus'}`\" aria-hidden=\"true\" />\n <span v-if=\"value\" class=\"sr-only\">Yes</span>\n <span v-else class=\"sr-only\">No</span>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelBoolean',\n props: {\n value: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-boolean\">\n <i :class=\"`fas ${value ? 'fa-check' : 'fa-minus'}`\" aria-hidden=\"true\" />\n <span v-if=\"value\" class=\"sr-only\">Yes</span>\n <span v-else class=\"sr-only\">No</span>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelBoolean',\n props: {\n value: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelBoolean from './template.vue'\n\nClTableCelBoolean.install = (Vue: App) => {\n Vue.component(ClTableCelBoolean.name ?? 'ClNoName', ClTableCelBoolean)\n}\n\nexport default ClTableCelBoolean\n","<template>\n <td class=\"cl-td-checkbox\">\n <div class=\"form-check text-center\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n @change=\"emitAll()\"\n />\n </div>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCheckbox',\n props: {\n id: {\n type: String,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue', 'changed'],\n data () {\n return {\n modelValue: this.value\n }\n },\n watch: {\n value: function (newVal: boolean) {\n this.modelValue = newVal\n }\n },\n methods: {\n emitAll: function () {\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('changed', this.modelValue)\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-checkbox\">\n <div class=\"form-check text-center\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n @change=\"emitAll()\"\n />\n </div>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCheckbox',\n props: {\n id: {\n type: String,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue', 'changed'],\n data () {\n return {\n modelValue: this.value\n }\n },\n watch: {\n value: function (newVal: boolean) {\n this.modelValue = newVal\n }\n },\n methods: {\n emitAll: function () {\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('changed', this.modelValue)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelCheckbox from './template.vue'\n\nClTableCelCheckbox.install = (Vue: App) => {\n Vue.component(ClTableCelCheckbox.name ?? 'ClNoName', ClTableCelCheckbox)\n}\n\nexport default ClTableCelCheckbox\n","<template>\n <td class=\"cl-td-code\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCode'\n})\n</script>\n","<template>\n <td class=\"cl-td-code\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCode'\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelCode from './template.vue'\n\nClTableCelCode.install = (Vue: App) => {\n Vue.component(ClTableCelCode.name ?? 'ClNoName', ClTableCelCode)\n}\n\nexport default ClTableCelCode\n","<template>\n <td class=\"cl-td-currency\">\n {{ currency }} {{ new Intl.NumberFormat('en-US').format(amount) }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCurrency',\n props: {\n amount: {\n type: Number,\n default: 0\n },\n currency: {\n type: String,\n default: 'EUR'\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-currency\">\n {{ currency }} {{ new Intl.NumberFormat('en-US').format(amount) }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCurrency',\n props: {\n amount: {\n type: Number,\n default: 0\n },\n currency: {\n type: String,\n default: 'EUR'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelCurrency from './template.vue'\n\nClTableCelCurrency.install = (Vue: App) => {\n Vue.component(ClTableCelCurrency.name ?? 'ClNoName', ClTableCelCurrency)\n}\n\nexport default ClTableCelCurrency\n","<template>\n <td class=\"cl-td-date\">\n {{ content }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelDate',\n props: {\n value: {\n type: String,\n default: undefined\n }\n },\n computed: {\n content: function (): string {\n if (this.value) {\n const date = new Date(this.value)\n const yyyy = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const mm = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date)\n const dd = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date)\n const HH = new Intl.DateTimeFormat('en', { hour: '2-digit', hour12: false }).format(date)\n const MM = new Intl.DateTimeFormat('en', { minute: '2-digit' }).format(date)\n return `${yyyy}-${mm}-${dd} ${HH}:${MM}`\n }\n return '-'\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-date\">\n {{ content }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelDate',\n props: {\n value: {\n type: String,\n default: undefined\n }\n },\n computed: {\n content: function (): string {\n if (this.value) {\n const date = new Date(this.value)\n const yyyy = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const mm = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date)\n const dd = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date)\n const HH = new Intl.DateTimeFormat('en', { hour: '2-digit', hour12: false }).format(date)\n const MM = new Intl.DateTimeFormat('en', { minute: '2-digit' }).format(date)\n return `${yyyy}-${mm}-${dd} ${HH}:${MM}`\n }\n return '-'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelDate from './template.vue'\n\nClTableCelDate.install = (Vue: App) => {\n Vue.component(ClTableCelDate.name ?? 'ClNoName', ClTableCelDate)\n}\n\nexport default ClTableCelDate\n","<template>\n <td v-tooltip:right=\"tooltip\" v-clipboard=\"full ?? value\" class=\"cl-td-id\">\n {{ value }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelId',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n value: {\n type: String,\n default: 'ABCDEF01'\n },\n full: {\n type: String,\n default: undefined\n }\n },\n computed: {\n tooltip: function (): string {\n return (this.full ?? this.value) + '<br><small>click-to-copy!</small>'\n }\n }\n})\n</script>\n","<template>\n <td v-tooltip:right=\"tooltip\" v-clipboard=\"full ?? value\" class=\"cl-td-id\">\n {{ value }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelId',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n value: {\n type: String,\n default: 'ABCDEF01'\n },\n full: {\n type: String,\n default: undefined\n }\n },\n computed: {\n tooltip: function (): string {\n return (this.full ?? this.value) + '<br><small>click-to-copy!</small>'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelId from './template.vue'\n\nClTableCelId.install = (Vue: App) => {\n Vue.component(ClTableCelId.name ?? 'ClNoName', ClTableCelId)\n}\n\nexport default ClTableCelId\n","<template>\n <td class=\"cl-td-links\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelLinks',\n props: {\n content: {\n type: String,\n default: ''\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-links\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelLinks',\n props: {\n content: {\n type: String,\n default: ''\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelLinks from './template.vue'\n\nClTableCelLinks.install = (Vue: App) => {\n Vue.component(ClTableCelLinks.name ?? 'ClNoName', ClTableCelLinks)\n}\n\nexport default ClTableCelLinks\n","<template>\n <td class=\"cl-td-time\"><slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelTime'\n})\n</script>\n","<template>\n <td class=\"cl-td-time\"><slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelTime'\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelTime from './template.vue'\n\nClTableCelTime.install = (Vue: App) => {\n Vue.component(ClTableCelTime.name ?? 'ClNoName', ClTableCelTime)\n}\n\nexport default ClTableCelTime\n","<template>\n <cl-table-cel-id :value=\"value.substring(0, 8)\" :full=\"value\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: 'ClTableCelUuid',\n props: {\n value: {\n type: String,\n default: '00000000-0000-0000-0000-000000000000'\n }\n }\n})\n</script>\n","<template>\n <cl-table-cel-id :value=\"value.substring(0, 8)\" :full=\"value\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: 'ClTableCelUuid',\n props: {\n value: {\n type: String,\n default: '00000000-0000-0000-0000-000000000000'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelUuid from './template.vue'\n\nClTableCelUuid.install = (Vue: App) => {\n Vue.component(ClTableCelUuid.name ?? 'ClNoName', ClTableCelUuid)\n}\n\nexport default ClTableCelUuid\n","<template>\n <tfoot v-if=\"any\" class=\"cl-table-foot-checked\">\n <tr>\n <td class=\"cl-td-links\" colspan=\"100\">\n <small><i class=\"fas fa-share fa-rotate-270 cl-faded\" /></small>\n \n <slot />\n </td>\n </tr>\n </tfoot>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableFootChecked',\n props: {\n checked: {\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n any: function (): boolean {\n for (const key in this.checked) {\n if (this.checked[key]) return true\n }\n return false\n }\n }\n})\n</script>\n","<template>\n <tfoot v-if=\"any\" class=\"cl-table-foot-checked\">\n <tr>\n <td class=\"cl-td-links\" colspan=\"100\">\n <small><i class=\"fas fa-share fa-rotate-270 cl-faded\" /></small>\n \n <slot />\n </td>\n </tr>\n </tfoot>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableFootChecked',\n props: {\n checked: {\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n any: function (): boolean {\n for (const key in this.checked) {\n if (this.checked[key]) return true\n }\n return false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableFoot from './template.vue'\n\nClTableFoot.install = (Vue: App) => {\n Vue.component(ClTableFoot.name ?? 'ClNoName', ClTableFoot)\n}\n\nexport default ClTableFoot\n","<template>\n <th\n :id=\"$uid\"\n class=\"cl-table-head\"\n :class=\"{\n 'cl-table-head-sort': sorter !== null,\n 'cl-table-head-checkbox': checkbox,\n 'cl-th-links': settings\n }\"\n :width=\"settings ? '1%' : width\"\n >\n <template v-if=\"settings\">\n <button type=\"button\" class=\"cl-btn-ghost\" @click=\"openSettings\" aria-label=\"Configure table\">\n <i class=\"fas fa-cog cl-faded\" v-tooltip:left=\"'Configure table'\" aria-hidden=\"true\" />\n </button>\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n <div v-else-if=\"checkbox\" class=\"form-check text-center\">\n <input\n ref=\"checkbox\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :indeterminate=\"checkState === 'SOME'\"\n @change=\"check()\"\n />\n </div>\n <template v-else>\n <button v-if=\"sorter\" type=\"button\" class=\"cl-btn-ghost\" @click=\"sortCol\">\n <slot /><i\n v-if=\"sorter?.col === col\"\n class=\"fas fa-fw\"\n :class=\"{\n 'fa-sort-up': sorter.order.toUpperCase() === 'ASC',\n 'fa-sort-down': sorter.order.toUpperCase() === 'DESC',\n 'fa-sort': !['ASC', 'DESC'].includes(sorter.order.toUpperCase())\n }\"\n />\n </button>\n <slot v-else />\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n </th>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\nimport * as CL from '@/utils/ui'\nimport type { ClTableSorter } from '@/../types/index'\n\nexport default defineComponent({\n name: 'ClTableHead',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n resize: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: ''\n },\n checkbox: {\n type: Boolean,\n default: false\n },\n initial: {\n type: String,\n default: 'NONE' // SOME, ALL\n },\n sorter: {\n type: Object as PropType<ClTableSorter<Record<string, string>>>,\n default: null\n },\n col: {\n type: Number,\n default: 0\n },\n settings: {\n type: Boolean,\n default: false\n }\n },\n emits: ['sort', 'all', 'none'],\n data () {\n return {\n checkState: this.initial,\n modelValue: this.initial === 'ALL',\n mySorter: this.sorter\n }\n },\n watch: {\n initial: function (newVal: string, oldVal: string) {\n if (newVal !== oldVal) {\n this.checkState = newVal\n this.modelValue = this.checkState === 'ALL'\n }\n }\n },\n mounted () {\n this.$nextTick(() => {\n if (this.mySorter) {\n if (this.mySorter.col === this.col) {\n this.mySorter.sort()\n }\n }\n })\n },\n methods: {\n check () {\n switch (this.checkState) {\n case 'NONE':\n case 'SOME':\n this.checkState = 'ALL'\n this.$emit('all')\n break\n case 'ALL':\n this.checkState = 'NONE'\n this.$emit('none')\n break\n }\n },\n openSettings (event: Event) {\n let element = event?.target as HTMLElement | null\n while (element) {\n if (element.tagName === 'TABLE') {\n CL.clModalShow(`${element.id}-settings`)\n return\n }\n element = element.parentElement\n }\n },\n sortCol () {\n let previous = 'NONE'\n if (this.mySorter.col === this.col) {\n previous = this.mySorter\n ? this.mySorter.order.toUpperCase()\n : this.sorter.order.toUpperCase()\n }\n switch (previous) {\n case 'OFF':\n break\n case 'ASC':\n if (this.mySorter) {\n this.mySorter.set(this.col, 'DESC')\n } else {\n this.$emit('sort', 'DESC')\n }\n break\n case 'DESC':\n default:\n if (this.mySorter) {\n this.mySorter.set(this.col, 'ASC')\n } else {\n this.$emit('sort', 'ASC')\n }\n }\n }\n }\n})\n</script>\n","<template>\n <th\n :id=\"$uid\"\n class=\"cl-table-head\"\n :class=\"{\n 'cl-table-head-sort': sorter !== null,\n 'cl-table-head-checkbox': checkbox,\n 'cl-th-links': settings\n }\"\n :width=\"settings ? '1%' : width\"\n >\n <template v-if=\"settings\">\n <button type=\"button\" class=\"cl-btn-ghost\" @click=\"openSettings\" aria-label=\"Configure table\">\n <i class=\"fas fa-cog cl-faded\" v-tooltip:left=\"'Configure table'\" aria-hidden=\"true\" />\n </button>\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n <div v-else-if=\"checkbox\" class=\"form-check text-center\">\n <input\n ref=\"checkbox\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :indeterminate=\"checkState === 'SOME'\"\n @change=\"check()\"\n />\n </div>\n <template v-else>\n <button v-if=\"sorter\" type=\"button\" class=\"cl-btn-ghost\" @click=\"sortCol\">\n <slot /><i\n v-if=\"sorter?.col === col\"\n class=\"fas fa-fw\"\n :class=\"{\n 'fa-sort-up': sorter.order.toUpperCase() === 'ASC',\n 'fa-sort-down': sorter.order.toUpperCase() === 'DESC',\n 'fa-sort': !['ASC', 'DESC'].includes(sorter.order.toUpperCase())\n }\"\n />\n </button>\n <slot v-else />\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n </th>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\nimport * as CL from '@/utils/ui'\nimport type { ClTableSorter } from '@/../types/index'\n\nexport default defineComponent({\n name: 'ClTableHead',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n resize: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: ''\n },\n checkbox: {\n type: Boolean,\n default: false\n },\n initial: {\n type: String,\n default: 'NONE' // SOME, ALL\n },\n sorter: {\n type: Object as PropType<ClTableSorter<Record<string, string>>>,\n default: null\n },\n col: {\n type: Number,\n default: 0\n },\n settings: {\n type: Boolean,\n default: false\n }\n },\n emits: ['sort', 'all', 'none'],\n data () {\n return {\n checkState: this.initial,\n modelValue: this.initial === 'ALL',\n mySorter: this.sorter\n }\n },\n watch: {\n initial: function (newVal: string, oldVal: string) {\n if (newVal !== oldVal) {\n this.checkState = newVal\n this.modelValue = this.checkState === 'ALL'\n }\n }\n },\n mounted () {\n this.$nextTick(() => {\n if (this.mySorter) {\n if (this.mySorter.col === this.col) {\n this.mySorter.sort()\n }\n }\n })\n },\n methods: {\n check () {\n switch (this.checkState) {\n case 'NONE':\n case 'SOME':\n this.checkState = 'ALL'\n this.$emit('all')\n break\n case 'ALL':\n this.checkState = 'NONE'\n this.$emit('none')\n break\n }\n },\n openSettings (event: Event) {\n let element = event?.target as HTMLElement | null\n while (element) {\n if (element.tagName === 'TABLE') {\n CL.clModalShow(`${element.id}-settings`)\n return\n }\n element = element.parentElement\n }\n },\n sortCol () {\n let previous = 'NONE'\n if (this.mySorter.col === this.col) {\n previous = this.mySorter\n ? this.mySorter.order.toUpperCase()\n : this.sorter.order.toUpperCase()\n }\n switch (previous) {\n case 'OFF':\n break\n case 'ASC':\n if (this.mySorter) {\n this.mySorter.set(this.col, 'DESC')\n } else {\n this.$emit('sort', 'DESC')\n }\n break\n case 'DESC':\n default:\n if (this.mySorter) {\n this.mySorter.set(this.col, 'ASC')\n } else {\n this.$emit('sort', 'ASC')\n }\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableHead from './template.vue'\n\nClTableHead.install = (Vue: App) => {\n Vue.component(ClTableHead.name ?? 'ClNoName', ClTableHead)\n}\n\nexport default ClTableHead\n","<template>\n <tr :id=\"id\" :class=\"clazz\">\n <slot />\n </tr>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableRow',\n props: {\n id: {\n type: String,\n default: null\n },\n class: {\n type: String,\n default: null\n },\n highlight: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n if (this.highlight) {\n return this.class + ' cl-highlight'\n } else {\n return this.class\n }\n }\n }\n})\n</script>\n","<template>\n <tr :id=\"id\" :class=\"clazz\">\n <slot />\n </tr>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableRow',\n props: {\n id: {\n type: String,\n default: null\n },\n class: {\n type: String,\n default: null\n },\n highlight: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n if (this.highlight) {\n return this.class + ' cl-highlight'\n } else {\n return this.class\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableRow from './template.vue'\n\nClTableRow.install = (Vue: App) => {\n Vue.component(ClTableRow.name ?? 'ClNoName', ClTableRow)\n}\n\nexport default ClTableRow\n","<template>\n <div class=\"cl-tabs\">\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <input\n v-if=\"slotExists(tab)\"\n :id=\"`tabs-${$uid}-${tab}`\"\n :class=\"`cl-tab-${tab}`\"\n type=\"radio\"\n :name=\"`tabs-${$uid}`\"\n :checked=\"index === tab - 1\"\n @change=\"emit(tab)\"\n />\n </template>\n <ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <li v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab}`\">\n <label :for=\"`tabs-${$uid}-${tab}`\"><slot :name=\"`tabs-${tab}-label`\" /></label>\n </li>\n </template>\n </ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <div v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab} cl-tab-content`\">\n <slot :name=\"`tabs-${tab}-content`\" />\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTabs',\n props: {\n index: {\n type: Number,\n default: 0\n }\n },\n emits: ['tab'],\n data () {\n return {\n tabs: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]\n }\n },\n methods: {\n slotExists (index: number): boolean {\n return this.$slots[`tabs-${index}-label`] !== undefined\n },\n emit (n: number): void {\n this.$emit('tab', n)\n }\n }\n})\n</script>\n","<template>\n <div class=\"cl-tabs\">\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <input\n v-if=\"slotExists(tab)\"\n :id=\"`tabs-${$uid}-${tab}`\"\n :class=\"`cl-tab-${tab}`\"\n type=\"radio\"\n :name=\"`tabs-${$uid}`\"\n :checked=\"index === tab - 1\"\n @change=\"emit(tab)\"\n />\n </template>\n <ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <li v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab}`\">\n <label :for=\"`tabs-${$uid}-${tab}`\"><slot :name=\"`tabs-${tab}-label`\" /></label>\n </li>\n </template>\n </ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <div v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab} cl-tab-content`\">\n <slot :name=\"`tabs-${tab}-content`\" />\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTabs',\n props: {\n index: {\n type: Number,\n default: 0\n }\n },\n emits: ['tab'],\n data () {\n return {\n tabs: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]\n }\n },\n methods: {\n slotExists (index: number): boolean {\n return this.$slots[`tabs-${index}-label`] !== undefined\n },\n emit (n: number): void {\n this.$emit('tab', n)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTabs from './template.vue'\n\nClTabs.install = (Vue: App) => {\n Vue.component(ClTabs.name ?? 'ClNoName', ClTabs)\n}\n\nexport default ClTabs\n","<template>\n <input\n :id=\"$uid\"\n type=\"checkbox\"\n :class=\"`cl-toggle-checkbox`\"\n :checked=\"modelValue\"\n :disabled=\"enabled ? null : true\"\n @change=\"toggle()\"\n />\n <label :id=\"id\" :class=\"clazz\" :for=\"$uid\" :disabled=\"enabled ? null : true\"\n ><i :class=\"`${iconOn} fa-fw`\" aria-hidden=\"true\" /><i\n :class=\"`${iconOff} fa-fw`\"\n aria-hidden=\"true\"\n />{{ title }}</label\n >\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClToggle',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n modelValue: {\n type: Boolean,\n default: false\n },\n enabled: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: ''\n },\n iconOn: {\n type: String,\n default: 'fas fa-check'\n },\n iconOff: {\n type: String,\n default: 'fas fa-times'\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n clazz: 'cl-badge ' + (this.class ?? '')\n }\n },\n methods: {\n toggle: function (): void {\n // move focus to checkbox, but hide visual focus\n if (this.enabled) {\n const checkbox = document.getElementById((this as any).$uid) as HTMLInputElement // eslint-disable-line @typescript-eslint/no-explicit-any\n if (checkbox) {\n this.$emit('update:modelValue', checkbox.checked)\n checkbox.focus()\n checkbox.blur() // fire blur\n checkbox.focus() // refocus\n }\n }\n }\n }\n})\n</script>\n","<template>\n <input\n :id=\"$uid\"\n type=\"checkbox\"\n :class=\"`cl-toggle-checkbox`\"\n :checked=\"modelValue\"\n :disabled=\"enabled ? null : true\"\n @change=\"toggle()\"\n />\n <label :id=\"id\" :class=\"clazz\" :for=\"$uid\" :disabled=\"enabled ? null : true\"\n ><i :class=\"`${iconOn} fa-fw`\" aria-hidden=\"true\" /><i\n :class=\"`${iconOff} fa-fw`\"\n aria-hidden=\"true\"\n />{{ title }}</label\n >\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClToggle',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n modelValue: {\n type: Boolean,\n default: false\n },\n enabled: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: ''\n },\n iconOn: {\n type: String,\n default: 'fas fa-check'\n },\n iconOff: {\n type: String,\n default: 'fas fa-times'\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n clazz: 'cl-badge ' + (this.class ?? '')\n }\n },\n methods: {\n toggle: function (): void {\n // move focus to checkbox, but hide visual focus\n if (this.enabled) {\n const checkbox = document.getElementById((this as any).$uid) as HTMLInputElement // eslint-disable-line @typescript-eslint/no-explicit-any\n if (checkbox) {\n this.$emit('update:modelValue', checkbox.checked)\n checkbox.focus()\n checkbox.blur() // fire blur\n checkbox.focus() // refocus\n }\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClToggle from './template.vue'\n\nClToggle.install = (Vue: App) => {\n Vue.component(ClToggle.name ?? 'ClNoName', ClToggle)\n}\n\nexport default ClToggle\n","export const CONST = {\n COLOR: {\n ASH: '#6d5e5e',\n BERRY: '#6e1c3b',\n BRICK: '#ba4f4f',\n CLAY: '#cfc8c8',\n EGGSHELL: '#fbf9f2',\n HAZE: '#eeece6',\n HAZEDARK: '#333947',\n HONEY: '#dc9404',\n LEAF: '#53965d',\n NIGHT: '#262a35',\n ORCHID: '#b271bf',\n PETROL: '#096174',\n RED: '#fa423c',\n SAND: '#fdf5cf',\n SEA: '#5d9dd1',\n SKY: '#71c0ff',\n STEEL: '#a0a0a0'\n },\n SPACING: {\n HUGE: '48px',\n LARGE: '32px',\n MEDIUM: '24px',\n SMALL: '16px',\n TINY: '8px',\n MICRO: '4px',\n NONE: '0px'\n }\n}\n","// helpers that handle CS data\n\nconst ENV = {\n DEV: 'DEV',\n TEST: 'TEST',\n STAG: 'STAG',\n PROD: 'PROD'\n}\n\nconst SERVICE = {\n CP: 'Content Platform',\n CP_TAGLINE: 'Access the Content Platform, manage, encode and watermark assets',\n CP_URN: 'urn:janus:service:76b6e8558263431d9d766779987d6410',\n CPS: 'Content Platform Staging',\n CPS_TAGLINE: 'Access the Content Platform, manage, encode and watermark assets',\n CPS_URN: 'urn:janus:service:f57f4728d2a54a0d99b77b9bb7e04bf6',\n CS: 'Castlabs hub',\n CS_TAGLINE: 'Manage organizations, plans, downloads',\n CS_URN: 'urn:janus:service:OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO',\n DT: 'DRMtoday',\n DT_TAGLINE: 'Cloud DRM & CAS licensing',\n DT_URN: 'urn:janus:service:79a1092a0be44b1c95a4557b8d3ee2b7',\n DTO: 'DRMtoday Onboard',\n DTO_TAGLINE: 'DRMtoday Onboard',\n DTO_URN: 'urn:janus:service:442f84ee6cc942188cb24486d7208289',\n DTS: 'DRMtoday Staging',\n DTS_TAGLINE: 'Cloud DRM & CAS licensing',\n DTS_URN: 'urn:janus:service:17edeac267d84703ab0ddd7a33d85706',\n PP: 'PRESTOplay',\n PP_TAGLINE: 'Cross-platform video players (via Castlabs hub)',\n PP_URN: 'urn:janus:service:a0682fd65f234a6793c526dc33131bab',\n PP_URN_ANDROID: 'urn:janus:service:95841e63952149408c71c650c9659fb7',\n PP_URN_BROWSER: 'urn:janus:service:852e1377df314c1a80003a9f67b98dfe',\n PP_URN_GSTREAMER: 'urn:janus:service:76b6e8558263431d9d766779987d64c1',\n PP_URN_IOS: 'urn:janus:service:2187beecaae44a01ac7eb353f5095f0f',\n PP_URN_REACTNATIVE: 'urn:janus:service:6efecac3ac04477e9b36d3d14e0ae257',\n PP_URN_WEBRTC: 'urn:janus:service:250402eb2e2d47118422ba4f2334ee54',\n VTK: 'Video Toolkit',\n VTK_TAGLINE: 'Cloud content processing',\n VTK_URN: 'urn:janus:service:a50e21d6a5e246809b636854abfbd34d',\n VTKS: 'Video Toolkit Staging',\n VTKS_TAGLINE: 'Cloud content processing',\n VTKS_URN: 'urn:janus:service:ca5bb34e8f39459796778e74fa097248',\n WM: 'STARDUSTmark',\n WM_TAGLINE: 'Video & image forensic watermarking',\n WM_URN: 'urn:janus:service:76b6e8558263431d9d766779987d64c4'\n}\n\nconst ROLE = {\n CS_READONLY: 'Read-Only',\n CS_READONLY_URN: 'urn:janus:role:b9d0931a01034fa095aa1a18ec303bac',\n\n CS_ADMIN: 'Admin',\n CS_ADMIN_URN: 'urn:janus:role:ab0cc31ad04a4090b41b0e552f7a3742',\n CS_BILLING: 'Billing',\n CS_BILLING_URN: 'urn:janus:role:2f4a76d16c9a47609255a253d873135c',\n CS_REPORTS: 'Reports',\n CS_REPORTS_URN: 'urn:janus:role:076e6514fe1f4d5abf307dc9fee7bbeb',\n\n PP_ADMIN: 'PRESTOplay admin',\n PP_ADMIN_URN: 'urn:janus:role:b79b1a10741f43b2bc0d1302d61b5865',\n PP_USER: 'PRESTOplay user',\n PP_USER_URN: 'urn:janus:role:7f2c7c7ee74d46e8936461d57180a1d3',\n\n DT_MEMBERS: 'Members',\n DT_MEMBERS_URN: 'urn:janus:role:2e5cfd4579d1485ca7e5f8cc97bdfe32',\n DT_SUBORGS: 'Sub-organizations',\n DT_SUBORGS_URN: 'urn:janus:role:2042447e1ae944c5a2bb75c9dd7077f3',\n DT_CONFIGURATION: 'Configuration',\n DT_CONFIGURATION_URN: 'urn:janus:role:07ac6d78216e41528d1b04a0ad737bc6',\n DT_KEYS_DELETE: 'Key delete',\n DT_KEYS_DELETE_URN: 'urn:janus:role:a79f863667944cca89588f69ea9d61dc',\n DT_KEYS_INGEST: 'Key ingest',\n DT_KEYS_INGEST_URN: 'urn:janus:role:08b9f5a98f084dd59d766be7039b504d',\n DT_ASSETS: 'Assets',\n DT_ASSETS_URN: 'urn:janus:role:4a2551570d644c08abb2795ccb8474cc',\n DT_DELIVERIES: 'Deliveries',\n DT_DELIVERIES_URN: 'urn:janus:role:7e23400fa5b84a38bbeca2ee515e5c9d',\n\n DTO_DEVICES: 'Devices',\n DTO_DEVICES_URN: 'urn:janus:role:c4e5556c769f4b23af3e502f9c589511',\n DTO_KEYBOX: 'Keyboxes',\n DTO_KEYBOX_URN: 'urn:janus:role:0658721525624ccc8fa612add5152d03',\n DTO_DOWNLOAD: 'Downloads',\n DTO_DOWNLOAD_URN: 'urn:janus:role:50905ceedf494b5e8d4379c0edce4b00',\n DTO_REPORTS: 'Reports',\n DTO_REPORTS_URN: 'urn:janus:role:50905ceedf494b5e8d4379c0edce4b01',\n DTO_CONFIGURATION: 'Configuration',\n DTO_CONFIGURATION_URN: 'urn:janus:role:50905ceedf494b5e8d4379c0edce4b02',\n\n DTS_MEMBERS: 'Members',\n DTS_MEMBERS_URN: 'urn:janus:role:36f4f90309294ceaa4f94e56953c1726',\n DTS_SUBORGS: 'Sub-organizations',\n DTS_SUBORGS_URN: 'urn:janus:role:471fe9be7e5d46feb6d84dd52e308b71',\n DTS_CONFIGURATION: 'Configuration',\n DTS_CONFIGURATION_URN: 'urn:janus:role:ff16e9fd5acc48e8a9acc078d2b72e7d',\n DTS_KEYS_DELETE: 'Key delete',\n DTS_KEYS_DELETE_URN: 'urn:janus:role:3f8dc55d3dbb4a4e893ba33ced829642',\n DTS_KEYS_INGEST: 'Key ingest',\n DTS_KEYS_INGEST_URN: 'urn:janus:role:471c6826d37f4d3aaa43cb3a3fda63ae',\n DTS_ASSETS: 'Assets',\n DTS_ASSETS_URN: 'urn:janus:role:f7c9335c70f14e4bb15d3f30761b8626',\n DTS_DELIVERIES: 'Deliveries',\n DTS_DELIVERIES_URN: 'urn:janus:role:e79a8f99a96a45238283b3c049e7374b',\n\n VTK_USER: 'Video Toolkit user',\n VTK_USER_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b8b4',\n\n CP_USER: 'Content Platform user',\n CP_USER_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b871',\n\n WM_DEMO: 'Demo',\n WM_DEMO_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b850',\n WM_EXTRACTION: 'Extraction',\n WM_EXTRACTION_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b851'\n}\n\nconst STATE = {\n UNKNOWN: null,\n ACTIVE: 0,\n PENDING: 1,\n DELETED: 2,\n SUSPENDED: 3\n}\n\nconst LICENSE_STATE = {\n ...STATE,\n APPROVAL_REQUIRED: 4,\n APPROVAL_DENIED: 5,\n APPROVAL_REVOKED: 6\n}\n\nconst PLAN = {\n UNKNOWN: null,\n TRIAL: 0,\n STARTER: 1,\n ENTERPRISE: 2,\n CUSTOM: 3\n}\n\nconst APPS = {\n CP: {\n id: 'CP',\n subtitle: SERVICE.CP_TAGLINE,\n title: SERVICE.CP,\n services: [SERVICE.CP_URN],\n roles: [ROLE.CP_USER_URN],\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://platform.content.castlabs.com/#/o/${oid ?? ''}`,\n `https://platform.content-stag.castlabs.com/#/o/${oid ?? ''}`\n ),\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: false\n },\n\n CPS: {\n id: 'CPS',\n subtitle: SERVICE.CPS_TAGLINE,\n title: SERVICE.CPS,\n services: [SERVICE.CPS_URN],\n roles: [ROLE.CP_USER_URN],\n urlManage: (env, oid) => `https://platform.content-stag.castlabs.com/#/o/${oid ?? ''}`,\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: false\n },\n\n CS: {\n id: 'CS',\n subtitle: SERVICE.CS_TAGLINE,\n title: SERVICE.CS,\n services: [SERVICE.CS_URN],\n roles: [],\n urlManage: (env, oid) => urlCS(env, oid),\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: true\n },\n\n DT: {\n id: 'DT',\n subtitle: SERVICE.DT_TAGLINE,\n title: SERVICE.DT,\n services: [SERVICE.DT_URN],\n roles: [\n ROLE.DT_MEMBERS_URN,\n ROLE.DT_SUBORGS_URN,\n ROLE.DT_CONFIGURATION_URN,\n ROLE.DT_KEYS_DELETE_URN,\n ROLE.DT_KEYS_INGEST_URN,\n ROLE.DT_ASSETS_URN,\n ROLE.DT_DELIVERIES_URN\n ],\n urlManage: (env, oid) =>\n getDevTestUrl(\n env,\n `https://fe.test.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`,\n `https://fe.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/drmtoday'),\n sidenav: true\n },\n\n DTO: {\n id: 'DTO',\n subtitle: SERVICE.DTO_TAGLINE,\n title: SERVICE.DTO,\n services: [SERVICE.DTO_URN],\n roles: [\n ROLE.DTO_DEVICES_URN,\n ROLE.DTO_KEYBOX_URN,\n ROLE.DTO_DOWNLOAD_URN,\n ROLE.DTO_CONFIGURATION_URN,\n ROLE.DTO_REPORTS_URN\n ],\n urlManage: (env, oid) => `https://onboard.castlabs.com/o/${oid ?? ''}/devices`,\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: false\n },\n\n DTS: {\n id: 'DTS',\n subtitle: SERVICE.DTS_TAGLINE,\n title: SERVICE.DTS,\n services: [SERVICE.DTS_URN],\n roles: [\n ROLE.DTS_MEMBERS_URN,\n ROLE.DTS_SUBORGS_URN,\n ROLE.DTS_CONFIGURATION_URN,\n ROLE.DTS_KEYS_DELETE_URN,\n ROLE.DTS_KEYS_INGEST_URN,\n ROLE.DTS_ASSETS_URN,\n ROLE.DTS_DELIVERIES_URN\n ],\n urlManage: (env, oid) =>\n getDevTestUrl(\n env,\n `https://fe.test.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`,\n `https://fe.staging.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/drmtoday'),\n sidenav: false\n },\n\n PP: {\n id: 'PP',\n subtitle: SERVICE.PP_TAGLINE,\n title: SERVICE.PP,\n services: [\n SERVICE.PP_URN,\n SERVICE.PP_URN_ANDROID,\n SERVICE.PP_URN_BROWSER,\n SERVICE.PP_URN_GSTREAMER,\n SERVICE.PP_URN_IOS,\n SERVICE.PP_URN_REACTNATIVE,\n SERVICE.PP_URN_WEBRTC\n ],\n roles: [ROLE.PP_USER_URN, ROLE.PP_ADMIN_URN],\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://account.castlabs.com/o/${oid}/prestoplay`,\n `https://account.test.cs.castlabs.com/o/${oid}/prestoplay`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/prestoplay'),\n sidenav: true\n },\n WM: {\n id: 'WM',\n subtitle: SERVICE.WM_TAGLINE,\n title: SERVICE.WM,\n services: [SERVICE.WM_URN],\n roles: [ROLE.WM_DEMO_URN, ROLE.WM_EXTRACTION_URN],\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://watermark.castlabs.com/#/o/${oid}`,\n `https://demo-stag.fwm.castlabs.com/#/o/${oid}`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/wm'),\n sidenav: true\n },\n\n VTK: {\n id: 'VTK',\n subtitle: SERVICE.VTK_TAGLINE,\n services: [SERVICE.VTK_URN],\n roles: [ROLE.VTK_USER_URN],\n title: SERVICE.VTK,\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://vtk.castlabs.com/${oid}/jobs/`,\n `https://vtks.castlabs.com/${oid}/jobs/`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/vtk'),\n sidenav: true\n },\n\n VTKS: {\n id: 'VTKS',\n subtitle: SERVICE.VTKS_TAGLINE,\n title: SERVICE.VTKS,\n services: [SERVICE.VTKS_URN],\n roles: [ROLE.VTK_USER_URN],\n urlManage: (env, oid) => `https://vtks.castlabs.com/${oid}/jobs/`,\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/vtk'),\n sidenav: false\n }\n}\n\n// ----------------------------------------------------------------------------------------\n\nexport const CS = {\n SERVICE,\n ROLE,\n STATE,\n LICENSE_STATE,\n PLAN,\n APPS\n}\n\n// ----------------------------------------------------------------------------------------\n\nfunction urlCS (env, oid, path) {\n return getDevTestUrl(\n env,\n `https://account.test.cs.castlabs.com/o/${oid ?? ''}${path ?? ''}`,\n `https://account.castlabs.com/o/${oid ?? ''}${path ?? ''}`\n )\n}\n\nfunction getDevTestUrl (env, urlDevTest, urlOther) {\n return getEnvUrl(env, urlDevTest, urlOther, [ENV.DEV, ENV.TEST])\n}\n\nfunction getEnvUrl (env, urlEnv, urlOther, envs = [ENV.PROD]) {\n return envs.includes(env) ? urlEnv : urlOther\n}\n\n// ----------------------------------------------------------------------------------------\n\nfunction csGetBestOrgLicense (membership, sids) {\n // sometimes multiple licenes apply to a service (e.g. PP-android, PP-ios, ...)\n // in that case we choose the license with the highest service level to be used\n // for sidenav link calulation\n let best = null\n for (const sid of sids) {\n const license = csGetOrgLicense(membership, sid)\n if (!license) continue\n if (\n best === null ||\n (best.status === CS.LICENSE_STATE.APPROVAL_REQUIRED &&\n license.status === CS.LICENSE_STATE.ACTIVE) ||\n (best.plan === CS.PLAN.TRIAL && license.plan !== CS.PLAN.TRIAL)\n ) {\n best = license\n }\n }\n return best\n}\n\nfunction csGetOrgLicense (membership, sid) {\n for (const license of membership.organization?.licenses ?? []) {\n if (\n license.service === sid &&\n [CS.LICENSE_STATE.ACTIVE, CS.LICENSE_STATE.APPROVAL_REQUIRED].includes(license.status)\n ) {\n return license\n }\n }\n return null\n}\n\nfunction basic (service) {\n // basic sidenav entry\n return {\n id: service.id,\n title: service.title,\n subtitle: service.subtitle,\n url: '#',\n disabled: false,\n badge: undefined\n }\n}\n\nfunction disabled (service) {\n // sidenav entry in org-unavailable mode\n return {\n ...basic(service),\n disabled: true\n }\n}\n\nfunction subscribed (service, oid, env) {\n // sidenav entry in subscribed mode\n return {\n ...basic(service),\n url: service.urlManage(env, oid)\n }\n}\n\nfunction trial (service, oid, env) {\n // sidenav entry in TRIAL mode\n return {\n ...subscribed(service, oid, env),\n badge: 'Trial'\n }\n}\n\nfunction subscribe (service, oid, env) {\n // sidenav entry in SUBSCRIBE mode\n return {\n ...basic(service),\n url: service.urlPlan(env, oid),\n badge: 'Subscribe'\n }\n}\n\nfunction pending (service, oid, env) {\n // sidenav entry in PENDING mode\n return {\n ...basic(service),\n url: service.urlPlan(env, oid),\n badge: 'Pending'\n }\n}\n\nfunction variant (service, license, oid, env, hasRole) {\n // no license = show subscribe ad\n if (!license) {\n // some items are hidden if there is no license\n if ([APPS.DTS.id, APPS.CPS.id, APPS.VTKS.id].includes(service.id)) return null\n\n // other items we hint the user to subscribe\n return subscribe(service, oid, env)\n }\n\n // pending license = show pending badge\n if ([CS.LICENSE_STATE.APPROVAL_REQUIRED].includes(license.status))\n return pending(service, oid, env)\n\n // trial license = show trial badge\n if (license.plan === CS.PLAN.TRIAL) return trial(service, oid, env)\n\n // any other license and a matching role = manage link\n if (hasRole) return subscribed(service, oid, env)\n\n // license but no role = disabled\n return disabled(service)\n}\n\nfunction csGetNavVariant (membership, service, oid, env) {\n const license = csGetBestOrgLicense(membership, service.services)\n return variant(\n service,\n license,\n oid,\n env,\n !!membership.roles.find(r => service.roles.includes(r.role_urn))\n )\n}\n\nfunction csParseMembership (membership, oid, env) {\n const nav = [subscribed(APPS.CS, oid, env)]\n\n const cps = csGetNavVariant(membership, APPS.CPS, oid, env)\n if (cps) nav.push(cps)\n nav.push(csGetNavVariant(membership, APPS.DT, oid, env))\n const dts = csGetNavVariant(membership, APPS.DTS, oid, env)\n if (dts) nav.push(dts)\n nav.push(csGetNavVariant(membership, APPS.PP, oid, env))\n nav.push(csGetNavVariant(membership, APPS.WM, oid, env))\n nav.push(csGetNavVariant(membership, APPS.VTK, oid, env))\n const vtks = csGetNavVariant(membership, APPS.VTKS, oid, env)\n if (vtks) nav.push(vtks)\n\n return nav\n}\n\n/**\n * Filters and returns services to be shown in the sidenav based on licenses and user roles for a given org id. The expected\n * JSON object corresponds to an memberships property from a CS UserInfo object retrieved via\n * https://auth.castlabs.com/api/v1/userinfo\n * (@see https://auth.castlabs.com/api/v1/docs#tag/User/operation/janus:UserInfo)\n *\n * @param {CsMembership[]} memberships Memberships.\n * @param {string} oid Organization urn.\n * @param {string} env Environment to generate links for (PROD, STAG, TEST, DEV).\n * @returns Array of service navigation objects that the user has access to, in proper order to display in sidenav's service-drawer.\n */\nexport function csGetNav (memberships, oid, env) {\n for (const membership of memberships) {\n if (membership.organization?.organization_urn === oid) {\n return csParseMembership(membership, oid, env)\n }\n }\n\n return [\n // static nav\n subscribed(APPS.CS),\n disabled(APPS.DT),\n disabled(APPS.PP),\n disabled(APPS.WM),\n disabled(APPS.VTK)\n ]\n}\n\n/**\n * Filters membership array of CS API to only contain memberships for a given service and role.\n *\n * @param {CsMembership[]} memberships Memberships.\n * @param {string} rid Role urn (optional).\n * @param {string} sid Service urn (optional).\n * @returns Array of memberships that match sid and rid. If any id was null, it was considered as 'any'.\n */\nexport function csFilterMemberships (memberships, rid, sid) {\n let clone = JSON.parse(JSON.stringify(memberships))\n\n // only keep orgs with licenses for required service\n if (sid) {\n clone = clone.filter(membership =>\n membership.organization.licenses.find(license => license.service === sid)\n )\n }\n\n // only keep orgs with required role\n if (rid) {\n clone = clone.filter(membership => membership.roles.find(role => role.role_urn === rid))\n }\n\n return clone\n}\n\n/**\n * Get the link to the current user's account page in CS.\n *\n * @param {string} env Environment to generate links for (PROD, STAG, TEST, DEV).\n * @returns {string} Full url to account page.\n */\nexport function csGetAccountUrl (env) {\n return getDevTestUrl(\n env,\n 'https://account.test.cs.castlabs.com/account',\n 'https://account.castlabs.com/account'\n )\n}\n","import { CS } from './cs.js'\n\nexport function clGetServices () {\n // static nav items if no CS integration is available\n return [\n // sorted alphabeticaly by title\n CS.APPS.CS,\n CS.APPS.CP,\n CS.APPS.DT,\n CS.APPS.DTS,\n CS.APPS.DTO,\n CS.APPS.PP,\n CS.APPS.WM,\n CS.APPS.VTK\n ]\n}\n\n// compatibility export with previous ui-lib versions\nexport const NAV = CS.APPS\n","const NBSP = '✺' // non-breakable space for searching substrings\n\nlet cache = {}\n\n/**\n * Determine if a string matches our advanced search expression.\n *\n * @param {String} string String to match against (haystack).\n * @param {String} expression String to match for (needle).\n * @param {Boolean} caseSensitive Boolean to turn on/off case sensitive search.\n * @return {boolean} True if string matches expression.\n */\nexport function clMatch (string, expression = '', caseSensitive = false) {\n const tree = cache[expression] ?? _tokenize(_sanitize(expression))\n if (Object.keys(cache).length > 100) cache = {} // clear too big caches\n cache[expression] = tree\n if (caseSensitive) {\n return matchSubtree(string.toLowerCase(), tree, caseSensitive)\n } else {\n return matchSubtree(string, tree, caseSensitive)\n }\n}\n\n// -----------------------------------------------------------------------------\n\nfunction matchSubtree (string, subtree, caseSensitive) {\n if (typeof subtree === 'string') {\n const term = subtree.replaceAll(NBSP, ' ')\n if (term[0] === '-') return !matchSubtree(string, term.substring(1), caseSensitive)\n if (caseSensitive) {\n return string.includes(term)\n } else {\n return string.toLowerCase().includes(term.toLowerCase())\n }\n } else {\n switch (subtree[0]) {\n case '&':\n return matchSubtree(string, subtree[1]) && matchSubtree(string, subtree[2])\n case '|':\n return matchSubtree(string, subtree[1]) || matchSubtree(string, subtree[2])\n default:\n return false // invalid search syntax\n }\n }\n}\n\nexport function _sanitize (expression) {\n // handle substrings/quotes\n const quoted = []\n let quoteMode = false\n for (let i = 0; i < expression.length; i++) {\n if (quoteMode) {\n if (expression[i] === quoteMode) {\n // string end found\n quoteMode = false\n } else {\n // char in substring found\n quoted.push([' '].includes(expression[i]) ? NBSP : expression[i])\n }\n } else {\n if ([\"'\", '\"'].includes(expression[i])) {\n // substring start found\n quoteMode = expression[i]\n } else {\n // regular non-substring character\n quoted.push(expression[i])\n }\n }\n }\n\n // handle remaining whitespace\n const trimmed = quoted.join('').replace(/\\s+/g, ' ').trim()\n if (trimmed.length <= 0) return ''\n\n const token = trimmed.split(' ')\n if (token.length <= 0) return ''\n\n const sanitized = []\n if (!['NOT', '-'].includes(token[0])) sanitized.push(token.shift())\n\n for (let i = 0; i < token.length; i++) {\n switch (token[i]) {\n case 'AND':\n case '&':\n case '&&':\n switch (token[++i]) {\n case 'NOT':\n case '-':\n if (token[i + 1]) {\n sanitized.push('&')\n sanitized.push('-')\n sanitized.push(token[++i])\n }\n break\n case undefined:\n break\n default:\n sanitized.push('&')\n sanitized.push(token[i])\n }\n break\n case 'OR':\n case '|':\n case '||':\n switch (token[++i]) {\n case 'NOT':\n case '-':\n if (token[i + 1]) {\n sanitized.push('|')\n sanitized.push('-')\n sanitized.push(token[++i])\n }\n break\n case undefined:\n break\n default:\n sanitized.push('|')\n sanitized.push(token[i])\n }\n break\n case 'NOT':\n case '-':\n sanitized.push('-')\n sanitized.push(token[++i])\n break\n default:\n sanitized.push('&') // default operation = AND\n sanitized.push(token[i])\n }\n }\n return ` ${sanitized.join(' ')} `.replace(/ - /g, ' -').trim()\n}\n\nexport function _tokenize (expression) {\n const OR = expression.indexOf(' | ')\n if (OR >= 0) {\n return ['|', _tokenize(expression.substring(0, OR)), _tokenize(expression.substring(OR + 3))]\n }\n\n const AND = expression.indexOf(' & ')\n if (AND >= 0) {\n return ['&', _tokenize(expression.substring(0, AND)), _tokenize(expression.substring(AND + 3))]\n }\n\n const SPACE = expression.indexOf(' ')\n if (SPACE >= 0) {\n return [\n '&',\n _tokenize(expression.substring(0, SPACE)),\n _tokenize(expression.substring(SPACE + 1))\n ]\n }\n\n return expression\n}\n","/**\n * uid.js - Provide a this.$uid to all components with an unique component ID.\n */\n\nexport default {\n install: (app) => {\n let id = 0\n app.mixin({\n beforeCreate: function beforeCreate () {\n let obj\n const uid = 'uid-' + id++\n Object.defineProperties(this, (obj = {}, obj.$uid = { get: function get () { return uid } }, obj))\n }\n })\n }\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */\n\n// helper methods for ui/vitests\n\nimport uid from '@/../plugins/uid'\n\nimport ClAlert from '@/components/ClAlert'\nimport ClBackCancelOk from '@/components/widget/ClBackCancelOk'\nimport ClCookieBanner from '@/components/widget/ClCookieBanner'\nimport ClCopy from '@/components/text/ClCopy'\nimport ClCreditcardNumber from '@/components/text/ClCreditcardNumber'\nimport ClDropzone from '@/components/ClDropzone'\nimport ClField from '@/components/form/ClField'\nimport ClFieldCheck from '@/components/form/ClFieldCheck'\nimport ClFieldGroup from '@/components/form/ClFieldGroup'\nimport ClHashtag from '@/components/text/ClHashtag'\nimport ClIconotron from '@/components/ClIconotron'\nimport ClInfo from '@/components/ClInfo'\nimport ClLinkExternal from '@/components/text/ClLinkExternal'\nimport ClLorem from '@/components/ClLorem'\nimport ClMailto from '@/components/text/ClMailto'\nimport ClModal from '@/components/modal/ClModal'\nimport ClModalConfirm from '@/components/modal/ClModalConfirm'\nimport ClModalForm from '@/components/modal/ClModalForm'\nimport ClModalOk from '@/components/modal/ClModalOk'\nimport ClNavItemDarkMode from '@/components/navigation/ClNavSide/ClNavItemDarkMode'\nimport ClNavSide from '@/components/navigation/ClNavSide'\nimport ClNavTop from '@/components/navigation/ClNavTop'\nimport ClOrg from '@/components/text/ClOrg'\nimport ClPage from '@/components/widget/ClPage'\nimport ClPagination from '@/components/ClPagination'\nimport ClPlan from '@/components/text/ClPlan'\nimport ClRole from '@/components/text/ClRole'\nimport ClSectionDetails from '@/components/section/ClSectionDetails'\nimport ClSectionForm from '@/components/section/ClSectionForm'\nimport ClSectionHeadline from '@/components/section/ClSectionHeadline'\nimport ClSectionMain from '@/components/section/ClSectionMain'\nimport ClSectionMainSide from '@/components/section/ClSectionMainSide'\nimport ClSpinner from '@/components/ClSpinner'\nimport ClTable from '@/components/table/ClTable'\nimport ClTableCel from '@/components/table/ClTableCel'\nimport ClTableCelActions from '@/components/table/ClTableCel/Actions'\nimport ClTableCelAudit from '@/components/table/ClTableCel/Audit'\nimport ClTableCelBoolean from '@/components/table/ClTableCel/Boolean'\nimport ClTableCelCheckbox from '@/components/table/ClTableCel/Checkbox'\nimport ClTableCelCode from '@/components/table/ClTableCel/Code'\nimport ClTableCelCurrency from '@/components/table/ClTableCel/Currency'\nimport ClTableCelDate from '@/components/table/ClTableCel/Date'\nimport ClTableCelId from '@/components/table/ClTableCel/ID'\nimport ClTableCelLinks from '@/components/table/ClTableCel/Links'\nimport ClTableCelTime from '@/components/table/ClTableCel/Time'\nimport ClTableCelUuid from '@/components/table/ClTableCel/UUID'\nimport ClTableFootChecked from '@/components/table/ClTableFootChecked'\nimport ClTableHead from '@/components/table/ClTableHead'\nimport ClTableRow from '@/components/table/ClTableRow'\nimport ClTabs from '@/components/ClTabs'\nimport ClToggle from '@/components/ClToggle'\n\n/**\n * Assembe all our Vue core components for the vitest mock helper.\n *\n * @return Object containing all Cl* components.\n */\nexport function clGetAllComponents () {\n return {\n ClAlert,\n ClBackCancelOk,\n ClCookieBanner,\n ClCopy,\n ClCreditcardNumber,\n ClDropzone,\n ClField,\n ClFieldCheck,\n ClFieldGroup,\n ClHashtag,\n ClIconotron,\n ClInfo,\n ClLinkExternal,\n ClLorem,\n ClMailto,\n ClModal,\n ClModalConfirm,\n ClModalForm,\n ClModalOk,\n ClNavItemDarkMode,\n ClNavSide,\n ClNavTop,\n ClOrg,\n ClPage,\n ClPagination,\n ClPlan,\n ClRole,\n ClSectionDetails,\n ClSectionForm,\n ClSectionHeadline,\n ClSectionMain,\n ClSectionMainSide,\n ClSpinner,\n ClTable,\n ClTableCel,\n ClTableCelActions,\n ClTableCelAudit,\n ClTableCelBoolean,\n ClTableCelCheckbox,\n ClTableCelCode,\n ClTableCelCurrency,\n ClTableCelDate,\n ClTableCelId,\n ClTableCelLinks,\n ClTableCelTime,\n ClTableCelUuid,\n ClTableFootChecked,\n ClTableHead,\n ClTableRow,\n ClTabs,\n ClToggle\n }\n}\n\nexport const FLECTIONS = [\n /[^a-z]don['`\\s]*t/i,\n /do[\\s]+not/i,\n /[^a-z]won['`\\s]*t/i,\n /will[\\s]+not/i,\n /[^a-z]aren['`\\s]*t/i,\n /are[\\s]+not/i,\n /[^a-z]isn['`\\s]*t/i,\n /is[\\s]+not/i,\n /you['`]*re/i,\n /you[\\s]+are/i,\n /we['`\\s]*re/i,\n /we[\\s]+are/i,\n /we['`]+ll/i,\n /we[\\s]+will/i,\n /[^a-z]shouldn['`\\s]*t/i,\n /should[\\s]+not/i,\n /[^a-z]mustn['`\\s]*t/i,\n /must[\\s]+not/i,\n /[^a-z]didn['`\\s]*t/i,\n /did[\\s]+not/i,\n /[^a-z]wasn['`\\s]*t/i,\n /was[\\s]+not/i,\n /[^a-z]hasn['`\\s]*t/i,\n /has[\\s]+not/i,\n /[^a-z]can['`]+t/i,\n /can[\\s]+not/i,\n /[a-z]n['`]+t/i // catch all non-specific\n]\n\n/**\n * Assembe all our Vue core plugins for the vitest mock helper.\n *\n * @return Array containing all plugins.\n */\nexport function clGetAllPlugins (): [{ install: (app: any) => void }] {\n return [uid]\n}\n\n/**\n * Helper method to patch one object with a (subset) of another. Makes overriding\n * single fields in test-objects easier.\n *\n * @param source Object to patch.\n * @param patches Object that overrides (partially) the source.\n * @returns Patched object, with all fields of patches applied to source.\n */\nexport function clPatch (source: any, patches: any): object {\n const clone = JSON.parse(JSON.stringify(source))\n\n for (const name in patches) {\n if (typeof patches[name] === 'object' && !Array.isArray(patches[name])) {\n clone[name] = clPatch(source[name] ?? {}, patches[name])\n } else {\n clone[name] = patches[name]\n }\n }\n\n return clone\n}\n\n/**\n * Helper method to patch a store object for wrap().\n *\n * @param source Object to patch.\n * @param patches Object that overrides (partially) the source.\n * @returns Object for wrap().\n */\nexport function clPatchStore (source: any, patches: any): object {\n return { store: clPatch(source, patches) }\n}\n","import 'simplebar'\n\nimport ClUI from './components/ClUI.vue'\n\nimport ClAlert from './components/ClAlert'\nimport ClBackCancelOk from './components/widget/ClBackCancelOk'\nimport ClCookieBanner from './components/widget/ClCookieBanner'\nimport ClCopy from './components/text/ClCopy'\nimport ClCreditcardNumber from './components/text/ClCreditcardNumber'\nimport ClDropzone from './components/ClDropzone'\nimport ClField from './components/form/ClField'\nimport ClFieldCheck from './components/form/ClFieldCheck'\nimport ClFieldGroup from './components/form/ClFieldGroup'\nimport ClHashtag from './components/text/ClHashtag'\nimport ClIconotron from './components/ClIconotron'\nimport ClInfo from './components/ClInfo'\nimport ClLinkExternal from './components/text/ClLinkExternal'\nimport ClLorem from './components/ClLorem'\nimport ClMailto from './components/text/ClMailto'\nimport ClMockRouterLink from './components/test/ClMockRouterLink'\nimport ClModal from './components/modal/ClModal'\nimport ClModalConfirm from './components/modal/ClModalConfirm'\nimport ClModalForm from './components/modal/ClModalForm'\nimport ClModalOk from './components/modal/ClModalOk'\nimport ClNavItemDarkMode from './components/navigation/ClNavSide/ClNavItemDarkMode'\nimport ClNavSide from './components/navigation/ClNavSide'\nimport ClNavTop from './components/navigation/ClNavTop'\nimport ClOrg from './components/text/ClOrg'\nimport ClPage from './components/widget/ClPage'\nimport ClPagination from './components/ClPagination'\nimport ClPlan from './components/text/ClPlan'\nimport ClRole from './components/text/ClRole'\nimport ClSectionDetails from './components/section/ClSectionDetails'\nimport ClSectionForm from './components/section/ClSectionForm'\nimport ClSectionHeadline from './components/section/ClSectionHeadline'\nimport ClSectionMain from './components/section/ClSectionMain'\nimport ClSectionMainSide from './components/section/ClSectionMainSide'\nimport ClSpinner from './components/ClSpinner'\nimport ClTable from './components/table/ClTable'\nimport ClTableCel from './components/table/ClTableCel'\nimport ClTableCelActions from './components/table/ClTableCel/Actions'\nimport ClTableCelAudit from './components/table/ClTableCel/Audit'\nimport ClTableCelBoolean from './components/table/ClTableCel/Boolean'\nimport ClTableCelCheckbox from './components/table/ClTableCel/Checkbox'\nimport ClTableCelCode from './components/table/ClTableCel/Code'\nimport ClTableCelCurrency from './components/table/ClTableCel/Currency'\nimport ClTableCelDate from './components/table/ClTableCel/Date'\nimport ClTableCelId from './components/table/ClTableCel/ID'\nimport ClTableCelLinks from './components/table/ClTableCel/Links'\nimport ClTableCelTime from './components/table/ClTableCel/Time'\nimport ClTableCelUuid from './components/table/ClTableCel/UUID'\nimport ClTableFootChecked from './components/table/ClTableFootChecked'\nimport ClTableHead from './components/table/ClTableHead'\nimport ClTableRow from './components/table/ClTableRow'\nimport ClTabs from './components/ClTabs'\nimport ClToggle from './components/ClToggle'\n\nimport type { App } from 'vue'\n\nconst components = {\n ClAlert,\n ClBackCancelOk,\n ClCookieBanner,\n ClCopy,\n ClCreditcardNumber,\n ClDropzone,\n ClField,\n ClFieldCheck,\n ClFieldGroup,\n ClHashtag,\n ClIconotron,\n ClInfo,\n ClLinkExternal,\n ClLorem,\n ClMailto,\n ClModal,\n ClModalConfirm,\n ClModalForm,\n ClModalOk,\n ClNavItemDarkMode,\n ClNavSide,\n ClNavTop,\n ClOrg,\n ClPage,\n ClPagination,\n ClPlan,\n ClRole,\n ClSectionDetails,\n ClSectionForm,\n ClSectionHeadline,\n ClSectionMain,\n ClSectionMainSide,\n ClSpinner,\n ClTable,\n ClTableCel,\n ClTableCelActions,\n ClTableCelAudit,\n ClTableCelBoolean,\n ClTableCelCheckbox,\n ClTableCelCode,\n ClTableCelCurrency,\n ClTableCelDate,\n ClTableCelId,\n ClTableCelLinks,\n ClTableCelTime,\n ClTableCelUuid,\n ClTableFootChecked,\n ClTableHead,\n ClTableRow,\n ClTabs,\n ClToggle,\n\n ClMockRouterLink,\n\n ClUI // keep last\n}\n\nexport function clUi (Vue: App): void {\n // tslixnt:disable-next-line: forin\n for (const component in components) {\n // @ts-expect-error We don’t want to properly import all types just for this...\n Vue.component(components[component].name, components[component])\n }\n}\n\nexport { default as ClAlert } from './components/ClAlert'\nexport { default as ClBackCancelOk } from './components/widget/ClBackCancelOk'\nexport { default as ClCookieBanner } from './components/widget/ClCookieBanner'\nexport { default as ClCopy } from './components/text/ClCopy'\nexport { default as ClCreditcardNumber } from './components/text/ClCreditcardNumber'\nexport { default as ClDropzone } from './components/ClDropzone'\nexport { default as ClField } from './components/form/ClField'\nexport { default as ClFieldCheck } from './components/form/ClFieldCheck'\nexport { default as ClFieldGroup } from './components/form/ClFieldGroup'\nexport { default as ClHashtag } from './components/text/ClHashtag'\nexport { default as ClIconotron } from './components/ClIconotron'\nexport { default as ClInfo } from './components/ClInfo'\nexport { default as ClLinkExternal } from './components/text/ClLinkExternal'\nexport { default as ClLorem } from './components/ClLorem'\nexport { default as ClMailto } from './components/text/ClMailto'\nexport { default as ClMockRouterLink } from './components/test/ClMockRouterLink'\nexport { default as ClModal } from './components/modal/ClModal'\nexport { default as ClModalConfirm } from './components/modal/ClModalConfirm'\nexport { default as ClModalForm } from './components/modal/ClModalForm'\nexport { default as ClModalOk } from './components/modal/ClModalOk'\nexport { default as ClNavItemDarkMode } from './components/navigation/ClNavSide/ClNavItemDarkMode'\nexport { default as ClNavSide } from './components/navigation/ClNavSide'\nexport { default as ClNavTop } from './components/navigation/ClNavTop'\nexport { default as ClOrg } from './components/text/ClOrg'\nexport { default as ClPage } from './components/widget/ClPage'\nexport { default as ClPagination } from './components/ClPagination'\nexport { default as ClPlan } from './components/text/ClPlan'\nexport { default as ClRole } from './components/text/ClRole'\nexport { default as ClSectionDetails } from './components/section/ClSectionDetails'\nexport { default as ClSectionForm } from './components/section/ClSectionForm'\nexport { default as ClSectionHeadline } from './components/section/ClSectionHeadline'\nexport { default as ClSectionMain } from './components/section/ClSectionMain'\nexport { default as ClSectionMainSide } from './components/section/ClSectionMainSide'\nexport { default as ClSpinner } from './components/ClSpinner'\nexport { default as ClTable } from './components/table/ClTable'\nexport { default as ClTableCel } from './components/table/ClTableCel'\nexport { default as ClTableCelActions } from './components/table/ClTableCel/Actions'\nexport { default as ClTableCelAudit } from './components/table/ClTableCel/Audit'\nexport { default as ClTableCelBoolean } from './components/table/ClTableCel/Boolean'\nexport { default as ClTableCelCheckbox } from './components/table/ClTableCel/Checkbox'\nexport { default as ClTableCelCode } from './components/table/ClTableCel/Code'\nexport { default as ClTableCelCurrency } from './components/table/ClTableCel/Currency'\nexport { default as ClTableCelDate } from './components/table/ClTableCel/Date'\nexport { default as ClTableCelId } from './components/table/ClTableCel/ID'\nexport { default as ClTableCelLinks } from './components/table/ClTableCel/Links'\nexport { default as ClTableCelTime } from './components/table/ClTableCel/Time'\nexport { default as ClTableCelUuid } from './components/table/ClTableCel/UUID'\nexport { default as ClTableFootChecked } from './components/table/ClTableFootChecked'\nexport { default as ClTableHead } from './components/table/ClTableHead'\nexport { default as ClTableRow } from './components/table/ClTableRow'\nexport { default as ClTabs } from './components/ClTabs'\nexport { default as ClToggle } from './components/ClToggle'\n\nexport * from '@/utils/const'\nexport * from '@/utils/cs'\nexport * from '@/utils/nav'\nexport * from '@/utils/search'\nexport * from '@/utils/test'\nexport * from '@/utils/ui'\nexport * from '@/utils/vue'\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,22],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"castlabs-ui.umd.js","names":["Symbol","nativeObjectToString","symToStringTag","Symbol","Symbol","FUNC_ERROR_TEXT","canUseDOM","getOptions","addClasses","bootstrap","bootstrap"],"sources":["../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/simplebar-core/dist/index.mjs","../node_modules/simplebar/dist/index.mjs","../src/components/ClUI.vue","../src/components/ClUI.vue","../src/components/ClAlert/template.vue","../src/components/ClAlert/template.vue","../src/components/ClAlert/index.ts","../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js","../src/utils/ui.js","../src/utils/vue.js","../src/components/widget/ClBackCancelOk/template.vue","../src/components/widget/ClBackCancelOk/template.vue","../src/components/widget/ClBackCancelOk/index.ts","../src/components/widget/ClCookieBanner/template.vue","../src/components/widget/ClCookieBanner/template.vue","../src/components/widget/ClCookieBanner/index.ts","../src/components/text/ClCopy/template.vue","../src/components/text/ClCopy/template.vue","../src/components/text/ClCopy/index.ts","../src/components/text/ClCreditcardNumber/template.vue","../src/components/text/ClCreditcardNumber/template.vue","../src/components/text/ClCreditcardNumber/index.ts","../src/components/ClDropzone/template.vue","../src/components/ClDropzone/template.vue","../src/components/ClDropzone/index.ts","../src/components/form/ClField/template.vue","../src/components/form/ClField/template.vue","../src/components/form/ClField/index.ts","../src/components/form/ClFieldCheck/template.vue","../src/components/form/ClFieldCheck/template.vue","../src/components/form/ClFieldCheck/index.ts","../src/components/form/ClFieldGroup/template.vue","../src/components/form/ClFieldGroup/template.vue","../src/components/form/ClFieldGroup/index.ts","../src/components/text/ClHashtag/template.vue","../src/components/text/ClHashtag/template.vue","../src/components/text/ClHashtag/index.ts","../src/components/ClIconotron/template.vue","../src/components/ClIconotron/template.vue","../src/components/ClIconotron/index.ts","../src/components/ClInfo/template.vue","../src/components/ClInfo/template.vue","../src/components/ClInfo/index.ts","../src/components/text/ClLinkExternal/template.vue","../src/components/text/ClLinkExternal/template.vue","../src/components/text/ClLinkExternal/index.ts","../src/components/ClLorem/template.vue","../src/components/ClLorem/template.vue","../src/components/ClLorem/index.ts","../src/components/text/ClMailto/template.vue","../src/components/text/ClMailto/template.vue","../src/components/text/ClMailto/index.ts","../src/components/test/ClMockRouterLink/template.vue","../src/components/test/ClMockRouterLink/template.vue","../src/components/test/ClMockRouterLink/index.ts","../src/components/modal/ClModal/template.vue","../src/components/modal/ClModal/template.vue","../src/components/modal/ClModal/index.ts","../src/components/modal/ClModalConfirm/template.vue","../src/components/modal/ClModalConfirm/template.vue","../src/components/modal/ClModalConfirm/index.ts","../src/components/modal/ClModalForm/template.vue","../src/components/modal/ClModalForm/template.vue","../src/components/modal/ClModalForm/index.ts","../src/components/modal/ClModalOk/template.vue","../src/components/modal/ClModalOk/template.vue","../src/components/modal/ClModalOk/index.ts","../src/components/navigation/ClNavSide/ClNavItemDarkMode/template.vue","../src/components/navigation/ClNavSide/ClNavItemDarkMode/template.vue","../src/components/navigation/ClNavSide/ClNavItemDarkMode/index.ts","../src/components/navigation/ClNavSide/Side.js","../src/components/navigation/ClNavSide/template.vue","../src/components/navigation/ClNavSide/template.vue","../src/components/navigation/ClNavSide/index.ts","../src/components/navigation/ClNavTop/template.vue","../src/components/navigation/ClNavTop/template.vue","../src/components/navigation/ClNavTop/index.ts","../src/components/text/ClOrg/template.vue","../src/components/text/ClOrg/template.vue","../src/components/text/ClOrg/index.ts","../src/components/widget/ClPage/template.vue","../src/components/widget/ClPage/template.vue","../src/components/widget/ClPage/index.ts","../src/components/ClPagination/template.vue","../src/components/ClPagination/template.vue","../src/components/ClPagination/index.ts","../src/components/text/ClPlan/template.vue","../src/components/text/ClPlan/template.vue","../src/components/text/ClPlan/index.ts","../src/components/text/ClRole/template.vue","../src/components/text/ClRole/template.vue","../src/components/text/ClRole/index.ts","../src/components/section/ClSectionDetails/template.vue","../src/components/section/ClSectionDetails/template.vue","../src/components/section/ClSectionDetails/index.ts","../src/components/section/ClSectionForm/template.vue","../src/components/section/ClSectionForm/template.vue","../src/components/section/ClSectionForm/index.ts","../src/components/section/ClSectionHeadline/template.vue","../src/components/section/ClSectionHeadline/template.vue","../src/components/section/ClSectionHeadline/index.ts","../src/components/section/ClSectionMain/template.vue","../src/components/section/ClSectionMain/template.vue","../src/components/section/ClSectionMain/index.ts","../src/components/section/ClSectionMainSide/template.vue","../src/components/section/ClSectionMainSide/template.vue","../src/components/section/ClSectionMainSide/index.ts","../src/components/ClSpinner/template.vue","../src/components/ClSpinner/template.vue","../src/components/ClSpinner/index.ts","../src/components/table/ClTable/Table.js","../src/components/table/ClTable/template.vue","../src/components/table/ClTable/template.vue","../src/components/table/ClTable/index.ts","../src/components/table/ClTableCel/template.vue","../src/components/table/ClTableCel/template.vue","../src/components/table/ClTableCel/index.ts","../src/components/table/ClTableCel/Actions/template.vue","../src/components/table/ClTableCel/Actions/template.vue","../src/components/table/ClTableCel/Actions/index.ts","../src/components/table/ClTableCel/Audit/template.vue","../src/components/table/ClTableCel/Audit/template.vue","../src/components/table/ClTableCel/Audit/index.ts","../src/components/table/ClTableCel/Boolean/template.vue","../src/components/table/ClTableCel/Boolean/template.vue","../src/components/table/ClTableCel/Boolean/index.ts","../src/components/table/ClTableCel/Checkbox/template.vue","../src/components/table/ClTableCel/Checkbox/template.vue","../src/components/table/ClTableCel/Checkbox/index.ts","../src/components/table/ClTableCel/Code/template.vue","../src/components/table/ClTableCel/Code/template.vue","../src/components/table/ClTableCel/Code/index.ts","../src/components/table/ClTableCel/Currency/template.vue","../src/components/table/ClTableCel/Currency/template.vue","../src/components/table/ClTableCel/Currency/index.ts","../src/components/table/ClTableCel/Date/template.vue","../src/components/table/ClTableCel/Date/template.vue","../src/components/table/ClTableCel/Date/index.ts","../src/components/table/ClTableCel/ID/template.vue","../src/components/table/ClTableCel/ID/template.vue","../src/components/table/ClTableCel/ID/index.ts","../src/components/table/ClTableCel/Links/template.vue","../src/components/table/ClTableCel/Links/template.vue","../src/components/table/ClTableCel/Links/index.ts","../src/components/table/ClTableCel/Time/template.vue","../src/components/table/ClTableCel/Time/template.vue","../src/components/table/ClTableCel/Time/index.ts","../src/components/table/ClTableCel/UUID/template.vue","../src/components/table/ClTableCel/UUID/template.vue","../src/components/table/ClTableCel/UUID/index.ts","../src/components/table/ClTableFootChecked/template.vue","../src/components/table/ClTableFootChecked/template.vue","../src/components/table/ClTableFootChecked/index.ts","../src/components/table/ClTableHead/template.vue","../src/components/table/ClTableHead/template.vue","../src/components/table/ClTableHead/index.ts","../src/components/table/ClTableRow/template.vue","../src/components/table/ClTableRow/template.vue","../src/components/table/ClTableRow/index.ts","../src/components/ClTabs/template.vue","../src/components/ClTabs/template.vue","../src/components/ClTabs/index.ts","../src/components/ClToggle/template.vue","../src/components/ClToggle/template.vue","../src/components/ClToggle/index.ts","../src/utils/const.js","../src/utils/cs.js","../src/utils/nav.js","../src/utils/search.js","../plugins/uid/index.js","../src/utils/test.ts","../src/index.ts"],"sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * simplebar-core - v1.3.2\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport debounce from 'lodash-es/debounce.js';\nimport throttle from 'lodash-es/throttle.js';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nfunction getElementWindow$1(element) {\n if (!element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView) {\n return window;\n }\n return element.ownerDocument.defaultView;\n}\nfunction getElementDocument$1(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n return element.ownerDocument;\n}\n// Helper function to retrieve options from element attributes\nvar getOptions$1 = function (obj) {\n var initialObj = {};\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (_, chr) { return chr.toUpperCase(); });\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n }, initialObj);\n return options;\n};\nfunction addClasses$1(el, classes) {\n var _a;\n if (!el)\n return;\n (_a = el.classList).add.apply(_a, classes.split(' '));\n}\nfunction removeClasses$1(el, classes) {\n if (!el)\n return;\n classes.split(' ').forEach(function (className) {\n el.classList.remove(className);\n });\n}\nfunction classNamesToQuery$1(classNames) {\n return \".\".concat(classNames.split(' ').join('.'));\n}\nvar canUseDOM = !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addClasses: addClasses$1,\n canUseDOM: canUseDOM,\n classNamesToQuery: classNamesToQuery$1,\n getElementDocument: getElementDocument$1,\n getElementWindow: getElementWindow$1,\n getOptions: getOptions$1,\n removeClasses: removeClasses$1\n});\n\nvar cachedScrollbarWidth = null;\nvar cachedDevicePixelRatio = null;\nif (canUseDOM) {\n window.addEventListener('resize', function () {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null) {\n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n var body = document.body;\n var box = document.createElement('div');\n box.classList.add('simplebar-hide-scrollbar');\n body.appendChild(box);\n var width = box.getBoundingClientRect().right;\n body.removeChild(box);\n cachedScrollbarWidth = width;\n }\n return cachedScrollbarWidth;\n}\n\nvar getElementWindow = getElementWindow$1, getElementDocument = getElementDocument$1, getOptions = getOptions$1, addClasses = addClasses$1, removeClasses = removeClasses$1, classNamesToQuery = classNamesToQuery$1;\nvar SimpleBarCore = /** @class */ (function () {\n function SimpleBarCore(element, options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.removePreventClickId = null;\n this.minScrollbarWidth = 20;\n this.stopScrollDelay = 175;\n this.isScrolling = false;\n this.isMouseEntering = false;\n this.isDragging = false;\n this.scrollXTicking = false;\n this.scrollYTicking = false;\n this.wrapperEl = null;\n this.contentWrapperEl = null;\n this.contentEl = null;\n this.offsetEl = null;\n this.maskEl = null;\n this.placeholderEl = null;\n this.heightAutoObserverWrapperEl = null;\n this.heightAutoObserverEl = null;\n this.rtlHelpers = null;\n this.scrollbarWidth = 0;\n this.resizeObserver = null;\n this.mutationObserver = null;\n this.elStyles = null;\n this.isRtl = null;\n this.mouseX = 0;\n this.mouseY = 0;\n this.onMouseMove = function () { };\n this.onWindowResize = function () { };\n this.onStopScrolling = function () { };\n this.onMouseEntered = function () { };\n /**\n * On scroll event handling\n */\n this.onScroll = function () {\n var elWindow = getElementWindow(_this.el);\n if (!_this.scrollXTicking) {\n elWindow.requestAnimationFrame(_this.scrollX);\n _this.scrollXTicking = true;\n }\n if (!_this.scrollYTicking) {\n elWindow.requestAnimationFrame(_this.scrollY);\n _this.scrollYTicking = true;\n }\n if (!_this.isScrolling) {\n _this.isScrolling = true;\n addClasses(_this.el, _this.classNames.scrolling);\n }\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.onStopScrolling();\n };\n this.scrollX = function () {\n if (_this.axis.x.isOverflowing) {\n _this.positionScrollbar('x');\n }\n _this.scrollXTicking = false;\n };\n this.scrollY = function () {\n if (_this.axis.y.isOverflowing) {\n _this.positionScrollbar('y');\n }\n _this.scrollYTicking = false;\n };\n this._onStopScrolling = function () {\n removeClasses(_this.el, _this.classNames.scrolling);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isScrolling = false;\n };\n this.onMouseEnter = function () {\n if (!_this.isMouseEntering) {\n addClasses(_this.el, _this.classNames.mouseEntered);\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.isMouseEntering = true;\n }\n _this.onMouseEntered();\n };\n this._onMouseEntered = function () {\n removeClasses(_this.el, _this.classNames.mouseEntered);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isMouseEntering = false;\n };\n this._onMouseMove = function (e) {\n _this.mouseX = e.clientX;\n _this.mouseY = e.clientY;\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseMoveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseMoveForAxis('y');\n }\n };\n this.onMouseLeave = function () {\n _this.onMouseMove.cancel();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseLeaveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseLeaveForAxis('y');\n }\n _this.mouseX = -1;\n _this.mouseY = -1;\n };\n this._onWindowResize = function () {\n // Recalculate scrollbarWidth in case it's a zoom\n _this.scrollbarWidth = _this.getScrollbarWidth();\n _this.hideNativeScrollbar();\n };\n this.onPointerEvent = function (e) {\n if (!_this.axis.x.track.el ||\n !_this.axis.y.track.el ||\n !_this.axis.x.scrollbar.el ||\n !_this.axis.y.scrollbar.el)\n return;\n var isWithinTrackXBounds, isWithinTrackYBounds;\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);\n }\n // If any pointer event is called on the scrollbar\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Prevent event leaking\n e.stopPropagation();\n if (e.type === 'pointerdown' && e.pointerType !== 'touch') {\n if (isWithinTrackXBounds) {\n _this.axis.x.scrollbar.rect =\n _this.axis.x.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {\n _this.onDragStart(e, 'x');\n }\n else {\n _this.onTrackClick(e, 'x');\n }\n }\n if (isWithinTrackYBounds) {\n _this.axis.y.scrollbar.rect =\n _this.axis.y.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {\n _this.onDragStart(e, 'y');\n }\n else {\n _this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n /**\n * Drag scrollbar handle\n */\n this.drag = function (e) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n if (!_this.draggedAxis || !_this.contentWrapperEl)\n return;\n var eventOffset;\n var track = _this.axis[_this.draggedAxis].track;\n var trackSize = (_b = (_a = track.rect) === null || _a === void 0 ? void 0 : _a[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n var contentSize = (_d = (_c = _this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c[_this.axis[_this.draggedAxis].scrollSizeAttr]) !== null && _d !== void 0 ? _d : 0;\n var hostSize = parseInt((_f = (_e = _this.elStyles) === null || _e === void 0 ? void 0 : _e[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _f !== void 0 ? _f : '0px', 10);\n e.preventDefault();\n e.stopPropagation();\n if (_this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n }\n else {\n eventOffset = e.pageX;\n }\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n var dragPos = eventOffset -\n ((_h = (_g = track.rect) === null || _g === void 0 ? void 0 : _g[_this.axis[_this.draggedAxis].offsetAttr]) !== null && _h !== void 0 ? _h : 0) -\n _this.axis[_this.draggedAxis].dragOffset;\n dragPos =\n _this.draggedAxis === 'x' && _this.isRtl\n ? ((_k = (_j = track.rect) === null || _j === void 0 ? void 0 : _j[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _k !== void 0 ? _k : 0) -\n scrollbar.size -\n dragPos\n : dragPos;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n var dragPerc = dragPos / (trackSize - scrollbar.size);\n // Scroll the content by the same percentage.\n var scrollPos = dragPerc * (contentSize - hostSize);\n // Fix browsers inconsistency on RTL\n if (_this.draggedAxis === 'x' && _this.isRtl) {\n scrollPos = ((_l = SimpleBarCore.getRtlHelpers()) === null || _l === void 0 ? void 0 : _l.isScrollingToNegative)\n ? -scrollPos\n : scrollPos;\n }\n _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] =\n scrollPos;\n };\n /**\n * End scroll handle drag\n */\n this.onEndDrag = function (e) {\n _this.isDragging = false;\n var elDocument = getElementDocument(_this.el);\n var elWindow = getElementWindow(_this.el);\n e.preventDefault();\n e.stopPropagation();\n removeClasses(_this.el, _this.classNames.dragging);\n _this.onStopScrolling();\n elDocument.removeEventListener('mousemove', _this.drag, true);\n elDocument.removeEventListener('mouseup', _this.onEndDrag, true);\n _this.removePreventClickId = elWindow.setTimeout(function () {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', _this.preventClick, true);\n elDocument.removeEventListener('dblclick', _this.preventClick, true);\n _this.removePreventClickId = null;\n });\n };\n /**\n * Handler to ignore click events during drag\n */\n this.preventClick = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n this.el = element;\n this.options = __assign(__assign({}, SimpleBarCore.defaultOptions), options);\n this.classNames = __assign(__assign({}, SimpleBarCore.defaultOptions.classNames), options.classNames);\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n }\n };\n if (typeof this.el !== 'object' || !this.el.nodeName) {\n throw new Error(\"Argument passed to SimpleBar must be an HTML element instead of \".concat(this.el));\n }\n this.onMouseMove = throttle(this._onMouseMove, 64);\n this.onWindowResize = debounce(this._onWindowResize, 64, { leading: true });\n this.onStopScrolling = debounce(this._onStopScrolling, this.stopScrollDelay);\n this.onMouseEntered = debounce(this._onMouseEntered, this.stopScrollDelay);\n this.init();\n }\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n SimpleBarCore.getRtlHelpers = function () {\n if (SimpleBarCore.rtlHelpers) {\n return SimpleBarCore.rtlHelpers;\n }\n var dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '<div class=\"simplebar-dummy-scrollbar-size\"><div></div></div>';\n var scrollbarDummyEl = dummyDiv.firstElementChild;\n var dummyChild = scrollbarDummyEl === null || scrollbarDummyEl === void 0 ? void 0 : scrollbarDummyEl.firstElementChild;\n if (!dummyChild)\n return null;\n document.body.appendChild(scrollbarDummyEl);\n scrollbarDummyEl.scrollLeft = 0;\n var dummyContainerOffset = SimpleBarCore.getOffset(scrollbarDummyEl);\n var dummyChildOffset = SimpleBarCore.getOffset(dummyChild);\n scrollbarDummyEl.scrollLeft = -999;\n var dummyChildOffsetAfterScroll = SimpleBarCore.getOffset(dummyChild);\n document.body.removeChild(scrollbarDummyEl);\n SimpleBarCore.rtlHelpers = {\n // determines if the scrolling is responding with negative values\n isScrollOriginAtZero: dummyContainerOffset.left !== dummyChildOffset.left,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isScrollingToNegative: dummyChildOffset.left !== dummyChildOffsetAfterScroll.left\n };\n return SimpleBarCore.rtlHelpers;\n };\n SimpleBarCore.prototype.getScrollbarWidth = function () {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if ((this.contentWrapperEl &&\n getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n .display === 'none') ||\n 'scrollbarWidth' in document.documentElement.style ||\n '-ms-overflow-style' in document.documentElement.style) {\n return 0;\n }\n else {\n return scrollbarWidth();\n }\n }\n catch (e) {\n return scrollbarWidth();\n }\n };\n SimpleBarCore.getOffset = function (el) {\n var rect = el.getBoundingClientRect();\n var elDocument = getElementDocument(el);\n var elWindow = getElementWindow(el);\n return {\n top: rect.top +\n (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left: rect.left +\n (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n };\n SimpleBarCore.prototype.init = function () {\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n this.rtlHelpers = SimpleBarCore.getRtlHelpers();\n this.scrollbarWidth = this.getScrollbarWidth();\n this.recalculate();\n this.initListeners();\n }\n };\n SimpleBarCore.prototype.initDOM = function () {\n var _a, _b;\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.wrapper));\n this.contentWrapperEl =\n this.options.scrollableNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentWrapper));\n this.contentEl =\n this.options.contentNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentEl));\n this.offsetEl = this.el.querySelector(classNamesToQuery(this.classNames.offset));\n this.maskEl = this.el.querySelector(classNamesToQuery(this.classNames.mask));\n this.placeholderEl = this.findChild(this.wrapperEl, classNamesToQuery(this.classNames.placeholder));\n this.heightAutoObserverWrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverWrapperEl));\n this.heightAutoObserverEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverEl));\n this.axis.x.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.horizontal)));\n this.axis.y.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.vertical)));\n this.axis.x.scrollbar.el =\n ((_a = this.axis.x.track.el) === null || _a === void 0 ? void 0 : _a.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n this.axis.y.scrollbar.el =\n ((_b = this.axis.y.track.el) === null || _b === void 0 ? void 0 : _b.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n if (!this.options.autoHide) {\n addClasses(this.axis.x.scrollbar.el, this.classNames.visible);\n addClasses(this.axis.y.scrollbar.el, this.classNames.visible);\n }\n };\n SimpleBarCore.prototype.initListeners = function () {\n var _this = this;\n var _a;\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n this.el.addEventListener('pointerdown', this.onPointerEvent, true);\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', this.onScroll);\n // Browser zoom triggers a window resize\n elWindow.addEventListener('resize', this.onWindowResize);\n if (!this.contentEl)\n return;\n if (window.ResizeObserver) {\n // Hack for https://github.com/WICG/ResizeObserver/issues/38\n var resizeObserverStarted_1 = false;\n var resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n this.resizeObserver = new resizeObserver(function () {\n if (!resizeObserverStarted_1)\n return;\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n elWindow.requestAnimationFrame(function () {\n resizeObserverStarted_1 = true;\n });\n }\n // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n this.mutationObserver = new elWindow.MutationObserver(function () {\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n };\n SimpleBarCore.prototype.recalculate = function () {\n if (!this.heightAutoObserverEl ||\n !this.contentEl ||\n !this.contentWrapperEl ||\n !this.wrapperEl ||\n !this.placeholderEl)\n return;\n var elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n var contentElOffsetWidth = this.contentEl.offsetWidth;\n var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1 || contentElOffsetWidth > 0;\n var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n var elOverflowX = this.elStyles.overflowX;\n var elOverflowY = this.elStyles.overflowY;\n this.contentEl.style.padding = \"\".concat(this.elStyles.paddingTop, \" \").concat(this.elStyles.paddingRight, \" \").concat(this.elStyles.paddingBottom, \" \").concat(this.elStyles.paddingLeft);\n this.wrapperEl.style.margin = \"-\".concat(this.elStyles.paddingTop, \" -\").concat(this.elStyles.paddingRight, \" -\").concat(this.elStyles.paddingBottom, \" -\").concat(this.elStyles.paddingLeft);\n var contentElScrollHeight = this.contentEl.scrollHeight;\n var contentElScrollWidth = this.contentEl.scrollWidth;\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? \"\".concat(contentElOffsetWidth || contentElScrollWidth, \"px\")\n : 'auto';\n this.placeholderEl.style.height = \"\".concat(contentElScrollHeight, \"px\");\n var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n this.axis.x.isOverflowing =\n contentElOffsetWidth !== 0 && contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing =\n contentElScrollHeight > contentWrapperElOffsetHeight;\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n this.hideNativeScrollbar();\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n var offsetForXScrollbar = this.axis.x.isOverflowing\n ? this.scrollbarWidth\n : 0;\n var offsetForYScrollbar = this.axis.y.isOverflowing\n ? this.scrollbarWidth\n : 0;\n this.axis.x.isOverflowing =\n this.axis.x.isOverflowing &&\n contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing =\n this.axis.y.isOverflowing &&\n contentElScrollHeight >\n contentWrapperElOffsetHeight - offsetForXScrollbar;\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n if (this.axis.x.scrollbar.el)\n this.axis.x.scrollbar.el.style.width = \"\".concat(this.axis.x.scrollbar.size, \"px\");\n if (this.axis.y.scrollbar.el)\n this.axis.y.scrollbar.el.style.height = \"\".concat(this.axis.y.scrollbar.size, \"px\");\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n };\n /**\n * Calculate scrollbar size\n */\n SimpleBarCore.prototype.getScrollbarSize = function (axis) {\n var _a, _b;\n if (axis === void 0) { axis = 'y'; }\n if (!this.axis[axis].isOverflowing || !this.contentEl) {\n return 0;\n }\n var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n var trackSize = (_b = (_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbarRatio = trackSize / contentSize;\n var scrollbarSize;\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n return scrollbarSize;\n };\n SimpleBarCore.prototype.positionScrollbar = function (axis) {\n var _a, _b, _c;\n if (axis === void 0) { axis = 'y'; }\n var scrollbar = this.axis[axis].scrollbar;\n if (!this.axis[axis].isOverflowing ||\n !this.contentWrapperEl ||\n !scrollbar.el ||\n !this.elStyles) {\n return;\n }\n var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n var trackSize = ((_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) || 0;\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n ((_b = SimpleBarCore.getRtlHelpers()) === null || _b === void 0 ? void 0 : _b.isScrollOriginAtZero)\n ? -scrollOffset\n : scrollOffset;\n if (axis === 'x' && this.isRtl) {\n scrollOffset = ((_c = SimpleBarCore.getRtlHelpers()) === null || _c === void 0 ? void 0 : _c.isScrollingToNegative)\n ? scrollOffset\n : -scrollOffset;\n }\n var scrollPourcent = scrollOffset / (contentSize - hostSize);\n var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' && this.isRtl\n ? -handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n scrollbar.el.style.transform =\n axis === 'x'\n ? \"translate3d(\".concat(handleOffset, \"px, 0, 0)\")\n : \"translate3d(0, \".concat(handleOffset, \"px, 0)\");\n };\n SimpleBarCore.prototype.toggleTrackVisibility = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var track = this.axis[axis].track.el;\n var scrollbar = this.axis[axis].scrollbar.el;\n if (!track || !scrollbar || !this.contentWrapperEl)\n return;\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n this.el.classList.add(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n this.el.classList.remove(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n }\n else {\n scrollbar.style.display = 'none';\n }\n };\n SimpleBarCore.prototype.showScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.axis[axis].isOverflowing && !this.axis[axis].scrollbar.isVisible) {\n addClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = true;\n }\n };\n SimpleBarCore.prototype.hideScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.isDragging)\n return;\n if (this.axis[axis].isOverflowing && this.axis[axis].scrollbar.isVisible) {\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = false;\n }\n };\n SimpleBarCore.prototype.hideNativeScrollbar = function () {\n if (!this.offsetEl)\n return;\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n };\n SimpleBarCore.prototype.onMouseMoveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!currentAxis.track.el || !currentAxis.scrollbar.el)\n return;\n currentAxis.track.rect = currentAxis.track.el.getBoundingClientRect();\n currentAxis.scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n if (this.isWithinBounds(currentAxis.track.rect)) {\n this.showScrollbar(axis);\n addClasses(currentAxis.track.el, this.classNames.hover);\n if (this.isWithinBounds(currentAxis.scrollbar.rect)) {\n addClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n else {\n removeClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n }\n else {\n removeClasses(currentAxis.track.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n }\n };\n SimpleBarCore.prototype.onMouseLeaveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n removeClasses(this.axis[axis].track.el, this.classNames.hover);\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n };\n /**\n * on scrollbar handle drag movement starts\n */\n SimpleBarCore.prototype.onDragStart = function (e, axis) {\n var _a;\n if (axis === void 0) { axis = 'y'; }\n this.isDragging = true;\n var elDocument = getElementDocument(this.el);\n var elWindow = getElementWindow(this.el);\n var scrollbar = this.axis[axis].scrollbar;\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset - (((_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) || 0);\n this.draggedAxis = axis;\n addClasses(this.el, this.classNames.dragging);\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n }\n else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n };\n SimpleBarCore.prototype.onTrackClick = function (e, axis) {\n var _this = this;\n var _a, _b, _c, _d;\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!this.options.clickOnTrack ||\n !currentAxis.scrollbar.el ||\n !this.contentWrapperEl)\n return;\n // Preventing the event's default to trigger click underneath\n e.preventDefault();\n var elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n var scrollbar = this.axis[axis].scrollbar;\n var scrollbarOffset = (_b = (_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) !== null && _b !== void 0 ? _b : 0;\n var hostSize = parseInt((_d = (_c = this.elStyles) === null || _c === void 0 ? void 0 : _c[this.axis[axis].sizeAttr]) !== null && _d !== void 0 ? _d : '0px', 10);\n var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n var t = axis === 'y'\n ? this.mouseY - scrollbarOffset\n : this.mouseX - scrollbarOffset;\n var dir = t < 0 ? -1 : 1;\n var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n var speed = 40;\n var scrollTo = function () {\n if (!_this.contentWrapperEl)\n return;\n if (dir === -1) {\n if (scrolled > scrollSize) {\n scrolled -= speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n else {\n if (scrolled < scrollSize) {\n scrolled += speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n scrollTo();\n };\n /**\n * Getter for content element\n */\n SimpleBarCore.prototype.getContentElement = function () {\n return this.contentEl;\n };\n /**\n * Getter for original scrolling element\n */\n SimpleBarCore.prototype.getScrollElement = function () {\n return this.contentWrapperEl;\n };\n SimpleBarCore.prototype.removeListeners = function () {\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n this.el.removeEventListener('pointerdown', this.onPointerEvent, true);\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n elWindow.removeEventListener('resize', this.onWindowResize);\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n // Cancel all debounced functions\n this.onMouseMove.cancel();\n this.onWindowResize.cancel();\n this.onStopScrolling.cancel();\n this.onMouseEntered.cancel();\n };\n /**\n * Remove all listeners from DOM nodes\n */\n SimpleBarCore.prototype.unMount = function () {\n this.removeListeners();\n };\n /**\n * Check if mouse is within bounds\n */\n SimpleBarCore.prototype.isWithinBounds = function (bbox) {\n return (this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height);\n };\n /**\n * Find element children matches query\n */\n SimpleBarCore.prototype.findChild = function (el, query) {\n var matches = el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, function (child) {\n return matches.call(child, query);\n })[0];\n };\n SimpleBarCore.rtlHelpers = null;\n SimpleBarCore.defaultOptions = {\n forceVisible: false,\n clickOnTrack: true,\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n ariaLabel: 'scrollable content',\n tabIndex: 0,\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging',\n scrolling: 'simplebar-scrolling',\n scrollable: 'simplebar-scrollable',\n mouseEntered: 'simplebar-mouse-entered'\n },\n scrollableNode: null,\n contentNode: null,\n autoHide: true\n };\n /**\n * Static functions\n */\n SimpleBarCore.getOptions = getOptions;\n SimpleBarCore.helpers = helpers;\n return SimpleBarCore;\n}());\n\nexport { SimpleBarCore as default };\n//# sourceMappingURL=index.mjs.map\n","/**\n * simplebar - v6.3.3\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport SimpleBarCore from 'simplebar-core';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar _a = SimpleBarCore.helpers, getOptions = _a.getOptions, addClasses = _a.addClasses, canUseDOM = _a.canUseDOM;\nvar SimpleBar = /** @class */ (function (_super) {\n __extends(SimpleBar, _super);\n function SimpleBar() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n // // Save a reference to the instance, so we know this DOM node has already been instancied\n SimpleBar.instances.set(args[0], _this);\n return _this;\n }\n SimpleBar.initDOMLoadedElements = function () {\n document.removeEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.removeEventListener('load', this.initDOMLoadedElements);\n Array.prototype.forEach.call(document.querySelectorAll('[data-simplebar]'), function (el) {\n if (el.getAttribute('data-simplebar') !== 'init' &&\n !SimpleBar.instances.has(el))\n new SimpleBar(el, getOptions(el.attributes));\n });\n };\n SimpleBar.removeObserver = function () {\n var _a;\n (_a = SimpleBar.globalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n };\n SimpleBar.prototype.initDOM = function () {\n var _this = this;\n var _a, _b, _c;\n // make sure this element doesn't have the elements yet\n if (!Array.prototype.filter.call(this.el.children, function (child) {\n return child.classList.contains(_this.classNames.wrapper);\n }).length) {\n // Prepare DOM\n this.wrapperEl = document.createElement('div');\n this.contentWrapperEl = document.createElement('div');\n this.offsetEl = document.createElement('div');\n this.maskEl = document.createElement('div');\n this.contentEl = document.createElement('div');\n this.placeholderEl = document.createElement('div');\n this.heightAutoObserverWrapperEl = document.createElement('div');\n this.heightAutoObserverEl = document.createElement('div');\n addClasses(this.wrapperEl, this.classNames.wrapper);\n addClasses(this.contentWrapperEl, this.classNames.contentWrapper);\n addClasses(this.offsetEl, this.classNames.offset);\n addClasses(this.maskEl, this.classNames.mask);\n addClasses(this.contentEl, this.classNames.contentEl);\n addClasses(this.placeholderEl, this.classNames.placeholder);\n addClasses(this.heightAutoObserverWrapperEl, this.classNames.heightAutoObserverWrapperEl);\n addClasses(this.heightAutoObserverEl, this.classNames.heightAutoObserverEl);\n while (this.el.firstChild) {\n this.contentEl.appendChild(this.el.firstChild);\n }\n this.contentWrapperEl.appendChild(this.contentEl);\n this.offsetEl.appendChild(this.contentWrapperEl);\n this.maskEl.appendChild(this.offsetEl);\n this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);\n this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);\n this.wrapperEl.appendChild(this.maskEl);\n this.wrapperEl.appendChild(this.placeholderEl);\n this.el.appendChild(this.wrapperEl);\n (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.setAttribute('tabindex', this.options.tabIndex.toString());\n (_b = this.contentWrapperEl) === null || _b === void 0 ? void 0 : _b.setAttribute('role', 'region');\n (_c = this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c.setAttribute('aria-label', this.options.ariaLabel);\n }\n if (!this.axis.x.track.el || !this.axis.y.track.el) {\n var track = document.createElement('div');\n var scrollbar = document.createElement('div');\n addClasses(track, this.classNames.track);\n addClasses(scrollbar, this.classNames.scrollbar);\n track.appendChild(scrollbar);\n this.axis.x.track.el = track.cloneNode(true);\n addClasses(this.axis.x.track.el, this.classNames.horizontal);\n this.axis.y.track.el = track.cloneNode(true);\n addClasses(this.axis.y.track.el, this.classNames.vertical);\n this.el.appendChild(this.axis.x.track.el);\n this.el.appendChild(this.axis.y.track.el);\n }\n SimpleBarCore.prototype.initDOM.call(this);\n this.el.setAttribute('data-simplebar', 'init');\n };\n SimpleBar.prototype.unMount = function () {\n SimpleBarCore.prototype.unMount.call(this);\n SimpleBar.instances[\"delete\"](this.el);\n };\n SimpleBar.initHtmlApi = function () {\n this.initDOMLoadedElements = this.initDOMLoadedElements.bind(this);\n // MutationObserver is IE11+\n if (typeof MutationObserver !== 'undefined') {\n // Mutation observer to observe dynamically added elements\n this.globalObserver = new MutationObserver(SimpleBar.handleMutations);\n this.globalObserver.observe(document, { childList: true, subtree: true });\n }\n // Taken from jQuery `ready` function\n // Instantiate elements already present on the page\n if (document.readyState === 'complete' || // @ts-ignore: IE specific\n (document.readyState !== 'loading' && !document.documentElement.doScroll)) {\n // Handle it asynchronously to allow scripts the opportunity to delay init\n window.setTimeout(this.initDOMLoadedElements);\n }\n else {\n document.addEventListener('DOMContentLoaded', this.initDOMLoadedElements);\n window.addEventListener('load', this.initDOMLoadedElements);\n }\n };\n SimpleBar.handleMutations = function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (addedNode) {\n if (addedNode.nodeType === 1) {\n if (addedNode.hasAttribute('data-simplebar')) {\n !SimpleBar.instances.has(addedNode) &&\n document.documentElement.contains(addedNode) &&\n new SimpleBar(addedNode, getOptions(addedNode.attributes));\n }\n else {\n addedNode\n .querySelectorAll('[data-simplebar]')\n .forEach(function (el) {\n if (el.getAttribute('data-simplebar') !== 'init' &&\n !SimpleBar.instances.has(el) &&\n document.documentElement.contains(el))\n new SimpleBar(el, getOptions(el.attributes));\n });\n }\n }\n });\n mutation.removedNodes.forEach(function (removedNode) {\n var _a;\n if (removedNode.nodeType === 1) {\n if (removedNode.getAttribute('data-simplebar') === 'init') {\n !document.documentElement.contains(removedNode) &&\n ((_a = SimpleBar.instances.get(removedNode)) === null || _a === void 0 ? void 0 : _a.unMount());\n }\n else {\n Array.prototype.forEach.call(removedNode.querySelectorAll('[data-simplebar=\"init\"]'), function (el) {\n var _a;\n !document.documentElement.contains(el) &&\n ((_a = SimpleBar.instances.get(el)) === null || _a === void 0 ? void 0 : _a.unMount());\n });\n }\n }\n });\n });\n };\n SimpleBar.instances = new WeakMap();\n return SimpleBar;\n}(SimpleBarCore));\n/**\n * HTML API\n * Called only in a browser env.\n */\nif (canUseDOM) {\n SimpleBar.initHtmlApi();\n}\n\nexport { SimpleBar as default };\n//# sourceMappingURL=index.mjs.map\n","<!-- dummy component to enforce global stuff in child projects -->\n<template>{{ VITE_APP_VERSION() }}</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClUI',\n methods: {\n VITE_APP_VERSION: () => VITE_APP_VERSION ?? '?.?.?'\n }\n})\n</script>\n\n<style lang=\"scss\">\n// pull in non-vue css\n@use '@/styles/vendors/bootstrap'; // must go first\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/layout/animation';\n@use '@/styles/layout/app';\n@use '@/styles/layout/color';\n@use '@/styles/layout/grid';\n@use '@/styles/layout/helper';\n@use '@/styles/layout/meta';\n@use '@/styles/layout/screenreader';\n@use '@/styles/layout/scrollbar';\n@use '@/styles/layout/section';\n@use '@/styles/layout/spacing';\n@use '@/styles/layout/typography' with (\n $cl-url-prefix: '@/styles/fonts/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/assets/logo' with (\n $cl-url-prefix: '@/styles/assets/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/styles/fonts/FontAwesome5' with (\n $cl-url-prefix: '@/styles/fonts/FontAwesome5/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/components/ClAlert/style' as *;\n@use '@/components/ClBadge/style' as *;\n@use '@/components/ClBlockquote/style' as *;\n@use '@/components/ClButton/style' as *;\n@use '@/components/ClCard/style' as *;\n@use '@/components/ClDropdown/style' as *;\n@use '@/components/ClDropzone/style' as *;\n@use '@/components/ClFooter/style' as *;\n@use '@/components/ClHighlight/style' as *;\n@use '@/components/ClIcon/style' as *;\n@use '@/components/ClIconotron/style' as *;\n@use '@/components/ClList/style' as *;\n@use '@/components/ClListGroup/style' as *;\n@use '@/components/ClPagination/style' as *;\n@use '@/components/ClProgress/style' as *;\n@use '@/components/ClScrollbar/style' as *;\n@use '@/components/ClSpinner/style' as *;\n@use '@/components/ClTabs/style' as *;\n@use '@/components/ClToggle/style' as *;\n@use '@/components/ClTooltip/style' as *;\n@use '@/components/ClWizard/style' as *;\n@use '@/components/form/ClField/style' as *;\n@use '@/components/form/ClFieldCheck/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldCheck/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldFile/style' as *;\n@use '@/components/form/ClFieldGroup/style' as *;\n@use '@/components/form/ClFieldInput/style' as *;\n@use '@/components/form/ClFieldSelect/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldSelect/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldSet/style' as *;\n@use '@/components/form/ClForm/style' as *;\n@use '@/components/modal/ClModal/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavDrawer/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavItemDarkMode/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavSideMenu/style' as *;\n@use '@/components/navigation/ClNavSide/style' as *;\n@use '@/components/navigation/ClNavTop/style' as *;\n@use '@/components/section/ClSectionDetails/style' as *;\n@use '@/components/section/ClSectionForm/style' as *;\n@use '@/components/section/ClSectionHeadline/style' as *;\n@use '@/components/section/ClSectionMainSide/style' as *;\n@use '@/components/table/ClTable/style' as *;\n@use '@/components/table/ClTableCel/Actions/style' as *;\n@use '@/components/table/ClTableCel/Audit/style' as *;\n@use '@/components/table/ClTableCel/Boolean/style' as *;\n@use '@/components/table/ClTableCel/Checkbox/style' as *;\n@use '@/components/table/ClTableCel/Code/style' as *;\n@use '@/components/table/ClTableCel/Currency/style' as *;\n@use '@/components/table/ClTableCel/Date/style' as *;\n@use '@/components/table/ClTableCel/ID/style' as *;\n@use '@/components/table/ClTableCel/Links/style' as *;\n@use '@/components/table/ClTableCel/style' as *;\n@use '@/components/table/ClTableCel/Time/style' as *;\n@use '@/components/table/ClTableFootChecked/style' as *;\n@use '@/components/table/ClTableHead/style' as *;\n@use '@/components/text/ClCopy/style' as *;\n@use '@/components/text/ClHashtag/style' as *;\n@use '@/components/text/ClLinkExternal/style' as *;\n@use '@/components/text/ClOrg/style' as *;\n@use '@/components/text/ClPlan/style' as *;\n@use '@/components/text/ClRole/style' as *;\n@use '@/components/widget/ClBackCancelOk/style' as *;\n@use '@/components/widget/ClCookieBanner/style' as *;\n@use '@/components/widget/ClPage/style' as *;\n\n@use '@/styles/themes/dark' as * with (\n $cl-url-prefix: '@/styles/themes/',\n $cl-url-postfix: '?no-inline'\n);\n</style>\n","<!-- dummy component to enforce global stuff in child projects -->\n<template>{{ VITE_APP_VERSION() }}</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClUI',\n methods: {\n VITE_APP_VERSION: () => VITE_APP_VERSION ?? '?.?.?'\n }\n})\n</script>\n\n<style lang=\"scss\">\n// pull in non-vue css\n@use '@/styles/vendors/bootstrap'; // must go first\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/layout/animation';\n@use '@/styles/layout/app';\n@use '@/styles/layout/color';\n@use '@/styles/layout/grid';\n@use '@/styles/layout/helper';\n@use '@/styles/layout/meta';\n@use '@/styles/layout/screenreader';\n@use '@/styles/layout/scrollbar';\n@use '@/styles/layout/section';\n@use '@/styles/layout/spacing';\n@use '@/styles/layout/typography' with (\n $cl-url-prefix: '@/styles/fonts/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/styles/assets/logo' with (\n $cl-url-prefix: '@/styles/assets/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/styles/fonts/FontAwesome5' with (\n $cl-url-prefix: '@/styles/fonts/FontAwesome5/',\n $cl-url-postfix: '?no-inline'\n);\n\n// -----------------------------------------------------------------------------\n\n@use '@/components/ClAlert/style' as *;\n@use '@/components/ClBadge/style' as *;\n@use '@/components/ClBlockquote/style' as *;\n@use '@/components/ClButton/style' as *;\n@use '@/components/ClCard/style' as *;\n@use '@/components/ClDropdown/style' as *;\n@use '@/components/ClDropzone/style' as *;\n@use '@/components/ClFooter/style' as *;\n@use '@/components/ClHighlight/style' as *;\n@use '@/components/ClIcon/style' as *;\n@use '@/components/ClIconotron/style' as *;\n@use '@/components/ClList/style' as *;\n@use '@/components/ClListGroup/style' as *;\n@use '@/components/ClPagination/style' as *;\n@use '@/components/ClProgress/style' as *;\n@use '@/components/ClScrollbar/style' as *;\n@use '@/components/ClSpinner/style' as *;\n@use '@/components/ClTabs/style' as *;\n@use '@/components/ClToggle/style' as *;\n@use '@/components/ClTooltip/style' as *;\n@use '@/components/ClWizard/style' as *;\n@use '@/components/form/ClField/style' as *;\n@use '@/components/form/ClFieldCheck/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldCheck/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldFile/style' as *;\n@use '@/components/form/ClFieldGroup/style' as *;\n@use '@/components/form/ClFieldInput/style' as *;\n@use '@/components/form/ClFieldSelect/style' as * with (\n $cl-url-prefix: '@/components/form/ClFieldSelect/',\n $cl-url-postfix: '?no-inline'\n);\n@use '@/components/form/ClFieldSet/style' as *;\n@use '@/components/form/ClForm/style' as *;\n@use '@/components/modal/ClModal/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavDrawer/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavItemDarkMode/style' as *;\n@use '@/components/navigation/ClNavSide/ClNavSideMenu/style' as *;\n@use '@/components/navigation/ClNavSide/style' as *;\n@use '@/components/navigation/ClNavTop/style' as *;\n@use '@/components/section/ClSectionDetails/style' as *;\n@use '@/components/section/ClSectionForm/style' as *;\n@use '@/components/section/ClSectionHeadline/style' as *;\n@use '@/components/section/ClSectionMainSide/style' as *;\n@use '@/components/table/ClTable/style' as *;\n@use '@/components/table/ClTableCel/Actions/style' as *;\n@use '@/components/table/ClTableCel/Audit/style' as *;\n@use '@/components/table/ClTableCel/Boolean/style' as *;\n@use '@/components/table/ClTableCel/Checkbox/style' as *;\n@use '@/components/table/ClTableCel/Code/style' as *;\n@use '@/components/table/ClTableCel/Currency/style' as *;\n@use '@/components/table/ClTableCel/Date/style' as *;\n@use '@/components/table/ClTableCel/ID/style' as *;\n@use '@/components/table/ClTableCel/Links/style' as *;\n@use '@/components/table/ClTableCel/style' as *;\n@use '@/components/table/ClTableCel/Time/style' as *;\n@use '@/components/table/ClTableFootChecked/style' as *;\n@use '@/components/table/ClTableHead/style' as *;\n@use '@/components/text/ClCopy/style' as *;\n@use '@/components/text/ClHashtag/style' as *;\n@use '@/components/text/ClLinkExternal/style' as *;\n@use '@/components/text/ClOrg/style' as *;\n@use '@/components/text/ClPlan/style' as *;\n@use '@/components/text/ClRole/style' as *;\n@use '@/components/widget/ClBackCancelOk/style' as *;\n@use '@/components/widget/ClCookieBanner/style' as *;\n@use '@/components/widget/ClPage/style' as *;\n\n@use '@/styles/themes/dark' as * with (\n $cl-url-prefix: '@/styles/themes/',\n $cl-url-postfix: '?no-inline'\n);\n</style>\n","<template>\n <p class=\"alert\" :class=\"`cl-alert-${type}`\" role=\"alert\">\n <slot />\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClAlert',\n props: {\n type: {\n type: String as PropType<\n 'success' | 'danger' | 'warning' | 'info' | 'suggestion' | 'check' | 'locked'\n >,\n default: 'info'\n }\n }\n})\n</script>\n","<template>\n <p class=\"alert\" :class=\"`cl-alert-${type}`\" role=\"alert\">\n <slot />\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClAlert',\n props: {\n type: {\n type: String as PropType<\n 'success' | 'danger' | 'warning' | 'info' | 'suggestion' | 'check' | 'locked'\n >,\n default: 'info'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClAlert from './template.vue'\n\nClAlert.install = (Vue: App) => {\n Vue.component(ClAlert.name ?? 'ClNoName', ClAlert)\n}\n\nexport default ClAlert\n","/*!\n * Bootstrap v5.3.8 (https://getbootstrap.com/)\n * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,function(){\"use strict\";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i=\"transitionend\",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\\s\"#']+)/g,(t,e)=>`#${CSS.escape(e)}`)),t),s=t=>null==t?`${t}`:Object.prototype.toString.call(t).match(/\\s([a-z]+)/i)[1].toLowerCase(),o=t=>{t.dispatchEvent(new Event(i))},r=t=>!(!t||\"object\"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),a=t=>r(t)?t.jquery?t[0]:t:\"string\"==typeof t&&t.length>0?document.querySelector(n(t)):null,l=t=>{if(!r(t)||0===t.getClientRects().length)return!1;const e=\"visible\"===getComputedStyle(t).getPropertyValue(\"visibility\"),i=t.closest(\"details:not([open])\");if(!i)return e;if(i!==t){const e=t.closest(\"summary\");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains(\"disabled\")||(void 0!==t.disabled?t.disabled:t.hasAttribute(\"disabled\")&&\"false\"!==t.getAttribute(\"disabled\")),h=t=>{if(!document.documentElement.attachShadow)return null;if(\"function\"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute(\"data-bs-no-jquery\")?window.jQuery:null,p=[],m=()=>\"rtl\"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},\"loading\"===document.readyState?(p.length||document.addEventListener(\"DOMContentLoaded\",()=>{for(const t of p)t()}),p.push(e)):e()},_=(t,e=[],i=t)=>\"function\"==typeof t?t.call(...e):i,b=(t,e,n=!0)=>{if(!n)return void _(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(\",\")[0],i=i.split(\",\")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),_(t))};e.addEventListener(i,a),setTimeout(()=>{r||o(e)},s)},v=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},y=/[^.]*(?=\\..*)\\.|.*/,w=/\\..*/,A=/::\\d+$/,E={};let T=1;const C={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},O=new Set([\"click\",\"dblclick\",\"mouseup\",\"mousedown\",\"contextmenu\",\"mousewheel\",\"DOMMouseScroll\",\"mouseover\",\"mouseout\",\"mousemove\",\"selectstart\",\"selectend\",\"keydown\",\"keypress\",\"keyup\",\"orientationchange\",\"touchstart\",\"touchmove\",\"touchend\",\"touchcancel\",\"pointerdown\",\"pointermove\",\"pointerup\",\"pointerleave\",\"pointercancel\",\"gesturestart\",\"gesturechange\",\"gestureend\",\"focus\",\"blur\",\"change\",\"reset\",\"select\",\"submit\",\"focusin\",\"focusout\",\"load\",\"unload\",\"beforeunload\",\"resize\",\"move\",\"DOMContentLoaded\",\"readystatechange\",\"error\",\"abort\",\"scroll\"]);function x(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function k(t){const e=x(t);return t.uidEvent=e,E[e]=E[e]||{},E[e]}function L(t,e,i=null){return Object.values(t).find(t=>t.callable===e&&t.delegationSelector===i)}function S(t,e,i){const n=\"string\"==typeof e,s=n?i:e||i;let o=N(t);return O.has(o)||(o=t),[n,s,o]}function D(t,e,i,n,s){if(\"string\"!=typeof e||!t)return;let[o,r,a]=S(e,i,n);if(e in C){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=k(t),c=l[a]||(l[a]={}),h=L(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=x(r,e.replace(y,\"\")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return j(s,{delegateTarget:r}),n.oneOff&&P.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return j(n,{delegateTarget:t}),i.oneOff&&P.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function $(t,e,i,n,s){const o=L(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function I(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&$(t,e,i,r.callable,r.delegationSelector)}function N(t){return t=t.replace(w,\"\"),C[t]||t}const P={on(t,e,i,n){D(t,e,i,n,!1)},one(t,e,i,n){D(t,e,i,n,!0)},off(t,e,i,n){if(\"string\"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=k(t),c=l[r]||{},h=e.startsWith(\".\");if(void 0===o){if(h)for(const i of Object.keys(l))I(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(A,\"\");a&&!e.includes(s)||$(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;$(t,l,r,o,s?i:null)}},trigger(t,e,i){if(\"string\"!=typeof e||!t)return null;const n=f();let s=null,o=!0,r=!0,a=!1;e!==N(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=j(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function j(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if(\"true\"===t)return!0;if(\"false\"===t)return!1;if(t===Number(t).toString())return Number(t);if(\"\"===t||\"null\"===t)return null;if(\"string\"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function F(t){return t.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const H={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter(t=>t.startsWith(\"bs\")&&!t.startsWith(\"bsConfig\"));for(const n of i){let i=n.replace(/^bs/,\"\");i=i.charAt(0).toLowerCase()+i.slice(1),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${F(e)}`))};class W{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method \"NAME\", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=r(e)?H.getDataAttribute(e,\"config\"):{};return{...this.constructor.Default,...\"object\"==typeof i?i:{},...r(e)?H.getDataAttributes(e):{},...\"object\"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[i,n]of Object.entries(e)){const e=t[i],o=r(e)?\"element\":s(e);if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${i}\" provided type \"${o}\" but expected type \"${n}\".`)}}}class B extends W{constructor(t,i){super(),(t=a(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),P.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){b(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(a(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,\"object\"==typeof e?e:null)}static get VERSION(){return\"5.3.8\"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const z=t=>{let e=t.getAttribute(\"data-bs-target\");if(!e||\"#\"===e){let i=t.getAttribute(\"href\");if(!i||!i.includes(\"#\")&&!i.startsWith(\".\"))return null;i.includes(\"#\")&&!i.startsWith(\"#\")&&(i=`#${i.split(\"#\")[1]}`),e=i&&\"#\"!==i?i.trim():null}return e?e.split(\",\").map(t=>n(t)).join(\",\"):null},R={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter(t=>t.matches(e)),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=[\"a\",\"button\",\"input\",\"textarea\",\"select\",\"details\",\"[tabindex]\",'[contenteditable=\"true\"]'].map(t=>`${t}:not([tabindex^=\"-\"])`).join(\",\");return this.find(e,t).filter(t=>!c(t)&&l(t))},getSelectorFromElement(t){const e=z(t);return e&&R.findOne(e)?e:null},getElementFromSelector(t){const e=z(t);return e?R.findOne(e):null},getMultipleElementsFromSelector(t){const e=z(t);return e?R.find(e):[]}},q=(t,e=\"hide\")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;P.on(document,i,`[data-bs-dismiss=\"${n}\"]`,function(i){if([\"A\",\"AREA\"].includes(this.tagName)&&i.preventDefault(),c(this))return;const s=R.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()})},V=\".bs.alert\",K=`close${V}`,Q=`closed${V}`;class X extends B{static get NAME(){return\"alert\"}close(){if(P.trigger(this._element,K).defaultPrevented)return;this._element.classList.remove(\"show\");const t=this._element.classList.contains(\"fade\");this._queueCallback(()=>this._destroyElement(),this._element,t)}_destroyElement(){this._element.remove(),P.trigger(this._element,Q),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=X.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}})}}q(X,\"close\"),g(X);const Y='[data-bs-toggle=\"button\"]';class U extends B{static get NAME(){return\"button\"}toggle(){this._element.setAttribute(\"aria-pressed\",this._element.classList.toggle(\"active\"))}static jQueryInterface(t){return this.each(function(){const e=U.getOrCreateInstance(this);\"toggle\"===t&&e[t]()})}}P.on(document,\"click.bs.button.data-api\",Y,t=>{t.preventDefault();const e=t.target.closest(Y);U.getOrCreateInstance(e).toggle()}),g(U);const G=\".bs.swipe\",J=`touchstart${G}`,Z=`touchmove${G}`,tt=`touchend${G}`,et=`pointerdown${G}`,it=`pointerup${G}`,nt={endCallback:null,leftCallback:null,rightCallback:null},st={endCallback:\"(function|null)\",leftCallback:\"(function|null)\",rightCallback:\"(function|null)\"};class ot extends W{constructor(t,e){super(),this._element=t,t&&ot.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return nt}static get DefaultType(){return st}static get NAME(){return\"swipe\"}dispose(){P.off(this._element,G)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),_(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&_(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(P.on(this._element,et,t=>this._start(t)),P.on(this._element,it,t=>this._end(t)),this._element.classList.add(\"pointer-event\")):(P.on(this._element,J,t=>this._start(t)),P.on(this._element,Z,t=>this._move(t)),P.on(this._element,tt,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(\"pen\"===t.pointerType||\"touch\"===t.pointerType)}static isSupported(){return\"ontouchstart\"in document.documentElement||navigator.maxTouchPoints>0}}const rt=\".bs.carousel\",at=\".data-api\",lt=\"ArrowLeft\",ct=\"ArrowRight\",ht=\"next\",dt=\"prev\",ut=\"left\",ft=\"right\",pt=`slide${rt}`,mt=`slid${rt}`,gt=`keydown${rt}`,_t=`mouseenter${rt}`,bt=`mouseleave${rt}`,vt=`dragstart${rt}`,yt=`load${rt}${at}`,wt=`click${rt}${at}`,At=\"carousel\",Et=\"active\",Tt=\".active\",Ct=\".carousel-item\",Ot=Tt+Ct,xt={[lt]:ft,[ct]:ut},kt={interval:5e3,keyboard:!0,pause:\"hover\",ride:!1,touch:!0,wrap:!0},Lt={interval:\"(number|boolean)\",keyboard:\"boolean\",pause:\"(string|boolean)\",ride:\"(boolean|string)\",touch:\"boolean\",wrap:\"boolean\"};class St extends B{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=R.findOne(\".carousel-indicators\",this._element),this._addEventListeners(),this._config.ride===At&&this.cycle()}static get Default(){return kt}static get DefaultType(){return Lt}static get NAME(){return\"carousel\"}next(){this._slide(ht)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(dt)}pause(){this._isSliding&&o(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?P.one(this._element,mt,()=>this.cycle()):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void P.one(this._element,mt,()=>this.to(t));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?ht:dt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&P.on(this._element,gt,t=>this._keydown(t)),\"hover\"===this._config.pause&&(P.on(this._element,_t,()=>this.pause()),P.on(this._element,bt,()=>this._maybeEnableCycle())),this._config.touch&&ot.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of R.find(\".carousel-item img\",this._element))P.on(t,vt,t=>t.preventDefault());const t={leftCallback:()=>this._slide(this._directionToOrder(ut)),rightCallback:()=>this._slide(this._directionToOrder(ft)),endCallback:()=>{\"hover\"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new ot(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=xt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=R.findOne(Tt,this._indicatorsElement);e.classList.remove(Et),e.removeAttribute(\"aria-current\");const i=R.findOne(`[data-bs-slide-to=\"${t}\"]`,this._indicatorsElement);i&&(i.classList.add(Et),i.setAttribute(\"aria-current\",\"true\"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute(\"data-bs-interval\"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===ht,s=e||v(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>P.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(pt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?\"carousel-item-start\":\"carousel-item-end\",c=n?\"carousel-item-next\":\"carousel-item-prev\";s.classList.add(c),u(s),i.classList.add(l),s.classList.add(l),this._queueCallback(()=>{s.classList.remove(l,c),s.classList.add(Et),i.classList.remove(Et,c,l),this._isSliding=!1,r(mt)},i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains(\"slide\")}_getActive(){return R.findOne(Ot,this._element)}_getItems(){return R.find(Ct,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return m()?t===ut?dt:ht:t===ut?ht:dt}_orderToDirection(t){return m()?t===dt?ut:ft:t===dt?ft:ut}static jQueryInterface(t){return this.each(function(){const e=St.getOrCreateInstance(this,t);if(\"number\"!=typeof t){if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}}else e.to(t)})}}P.on(document,wt,\"[data-bs-slide], [data-bs-slide-to]\",function(t){const e=R.getElementFromSelector(this);if(!e||!e.classList.contains(At))return;t.preventDefault();const i=St.getOrCreateInstance(e),n=this.getAttribute(\"data-bs-slide-to\");return n?(i.to(n),void i._maybeEnableCycle()):\"next\"===H.getDataAttribute(this,\"slide\")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())}),P.on(window,yt,()=>{const t=R.find('[data-bs-ride=\"carousel\"]');for(const e of t)St.getOrCreateInstance(e)}),g(St);const Dt=\".bs.collapse\",$t=`show${Dt}`,It=`shown${Dt}`,Nt=`hide${Dt}`,Pt=`hidden${Dt}`,jt=`click${Dt}.data-api`,Mt=\"show\",Ft=\"collapse\",Ht=\"collapsing\",Wt=`:scope .${Ft} .${Ft}`,Bt='[data-bs-toggle=\"collapse\"]',zt={parent:null,toggle:!0},Rt={parent:\"(null|element)\",toggle:\"boolean\"};class qt extends B{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=R.find(Bt);for(const t of i){const e=R.getSelectorFromElement(t),i=R.find(e).filter(t=>t===this._element);null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return zt}static get DefaultType(){return Rt}static get NAME(){return\"collapse\"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(\".collapse.show, .collapse.collapsing\").filter(t=>t!==this._element).map(t=>qt.getOrCreateInstance(t,{toggle:!1}))),t.length&&t[0]._isTransitioning)return;if(P.trigger(this._element,$t).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(Ht),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ht),this._element.classList.add(Ft,Mt),this._element.style[e]=\"\",P.trigger(this._element,It)},this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(P.trigger(this._element,Nt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(Ht),this._element.classList.remove(Ft,Mt);for(const t of this._triggerArray){const e=R.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]=\"\",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(Ht),this._element.classList.add(Ft),P.trigger(this._element,Pt)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(Mt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=a(t.parent),t}_getDimension(){return this._element.classList.contains(\"collapse-horizontal\")?\"width\":\"height\"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Bt);for(const e of t){const t=R.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=R.find(Wt,this._config.parent);return R.find(t,this._config.parent).filter(t=>!e.includes(t))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle(\"collapsed\",!e),i.setAttribute(\"aria-expanded\",e)}static jQueryInterface(t){const e={};return\"string\"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each(function(){const i=qt.getOrCreateInstance(this,e);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t]()}})}}P.on(document,jt,Bt,function(t){(\"A\"===t.target.tagName||t.delegateTarget&&\"A\"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of R.getMultipleElementsFromSelector(this))qt.getOrCreateInstance(t,{toggle:!1}).toggle()}),g(qt);var Vt=\"top\",Kt=\"bottom\",Qt=\"right\",Xt=\"left\",Yt=\"auto\",Ut=[Vt,Kt,Qt,Xt],Gt=\"start\",Jt=\"end\",Zt=\"clippingParents\",te=\"viewport\",ee=\"popper\",ie=\"reference\",ne=Ut.reduce(function(t,e){return t.concat([e+\"-\"+Gt,e+\"-\"+Jt])},[]),se=[].concat(Ut,[Yt]).reduce(function(t,e){return t.concat([e,e+\"-\"+Gt,e+\"-\"+Jt])},[]),oe=\"beforeRead\",re=\"read\",ae=\"afterRead\",le=\"beforeMain\",ce=\"main\",he=\"afterMain\",de=\"beforeWrite\",ue=\"write\",fe=\"afterWrite\",pe=[oe,re,ae,le,ce,he,de,ue,fe];function me(t){return t?(t.nodeName||\"\").toLowerCase():null}function ge(t){if(null==t)return window;if(\"[object Window]\"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function _e(t){return t instanceof ge(t).Element||t instanceof Element}function be(t){return t instanceof ge(t).HTMLElement||t instanceof HTMLElement}function ve(t){return\"undefined\"!=typeof ShadowRoot&&(t instanceof ge(t).ShadowRoot||t instanceof ShadowRoot)}const ye={name:\"applyStyles\",enabled:!0,phase:\"write\",fn:function(t){var e=t.state;Object.keys(e.elements).forEach(function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];be(s)&&me(s)&&(Object.assign(s.style,i),Object.keys(n).forEach(function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?\"\":e)}))})},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:\"0\",top:\"0\",margin:\"0\"},arrow:{position:\"absolute\"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach(function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce(function(t,e){return t[e]=\"\",t},{});be(n)&&me(n)&&(Object.assign(n.style,o),Object.keys(s).forEach(function(t){n.removeAttribute(t)}))})}},requires:[\"computeStyles\"]};function we(t){return t.split(\"-\")[0]}var Ae=Math.max,Ee=Math.min,Te=Math.round;function Ce(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map(function(t){return t.brand+\"/\"+t.version}).join(\" \"):navigator.userAgent}function Oe(){return!/^((?!chrome|android).)*safari/i.test(Ce())}function xe(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&be(t)&&(s=t.offsetWidth>0&&Te(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Te(n.height)/t.offsetHeight||1);var r=(_e(t)?ge(t):window).visualViewport,a=!Oe()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function ke(t){var e=xe(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Le(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ve(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Se(t){return ge(t).getComputedStyle(t)}function De(t){return[\"table\",\"td\",\"th\"].indexOf(me(t))>=0}function $e(t){return((_e(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ie(t){return\"html\"===me(t)?t:t.assignedSlot||t.parentNode||(ve(t)?t.host:null)||$e(t)}function Ne(t){return be(t)&&\"fixed\"!==Se(t).position?t.offsetParent:null}function Pe(t){for(var e=ge(t),i=Ne(t);i&&De(i)&&\"static\"===Se(i).position;)i=Ne(i);return i&&(\"html\"===me(i)||\"body\"===me(i)&&\"static\"===Se(i).position)?e:i||function(t){var e=/firefox/i.test(Ce());if(/Trident/i.test(Ce())&&be(t)&&\"fixed\"===Se(t).position)return null;var i=Ie(t);for(ve(i)&&(i=i.host);be(i)&&[\"html\",\"body\"].indexOf(me(i))<0;){var n=Se(i);if(\"none\"!==n.transform||\"none\"!==n.perspective||\"paint\"===n.contain||-1!==[\"transform\",\"perspective\"].indexOf(n.willChange)||e&&\"filter\"===n.willChange||e&&n.filter&&\"none\"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function je(t){return[\"top\",\"bottom\"].indexOf(t)>=0?\"x\":\"y\"}function Me(t,e,i){return Ae(t,Ee(e,i))}function Fe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function He(t,e){return e.reduce(function(e,i){return e[i]=t,e},{})}const We={name:\"arrow\",enabled:!0,phase:\"main\",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=we(i.placement),l=je(a),c=[Xt,Qt].indexOf(a)>=0?\"height\":\"width\";if(o&&r){var h=function(t,e){return Fe(\"number\"!=typeof(t=\"function\"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:He(t,Ut))}(s.padding,i),d=ke(o),u=\"y\"===l?Vt:Xt,f=\"y\"===l?Kt:Qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=Pe(o),_=g?\"y\"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Me(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?\"[data-popper-arrow]\":i;null!=n&&(\"string\"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Le(e.elements.popper,n)&&(e.elements.arrow=n)},requires:[\"popperOffsets\"],requiresIfExists:[\"preventOverflow\"]};function Be(t){return t.split(\"-\")[1]}var ze={top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\"};function Re(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g=\"function\"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty(\"x\"),b=r.hasOwnProperty(\"y\"),v=Xt,y=Vt,w=window;if(c){var A=Pe(i),E=\"clientHeight\",T=\"clientWidth\";A===ge(i)&&\"static\"!==Se(A=$e(i)).position&&\"absolute\"===a&&(E=\"scrollHeight\",T=\"scrollWidth\"),(s===Vt||(s===Xt||s===Qt)&&o===Jt)&&(y=Kt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Xt&&(s!==Vt&&s!==Kt||o!==Jt)||(v=Qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&ze),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:Te(i*s)/s||0,y:Te(n*s)/s||0}}({x:f,y:m},ge(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?\"0\":\"\",C[v]=_?\"0\":\"\",C.transform=(w.devicePixelRatio||1)<=1?\"translate(\"+f+\"px, \"+m+\"px)\":\"translate3d(\"+f+\"px, \"+m+\"px, 0)\",C)):Object.assign({},O,((e={})[y]=b?m+\"px\":\"\",e[v]=_?f+\"px\":\"\",e.transform=\"\",e))}const qe={name:\"computeStyles\",enabled:!0,phase:\"beforeWrite\",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:we(e.placement),variation:Be(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:\"fixed\"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Re(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Re(Object.assign({},c,{offsets:e.modifiersData.arrow,position:\"absolute\",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-placement\":e.placement})},data:{}};var Ve={passive:!0};const Ke={name:\"eventListeners\",enabled:!0,phase:\"write\",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=ge(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach(function(t){t.addEventListener(\"scroll\",i.update,Ve)}),a&&l.addEventListener(\"resize\",i.update,Ve),function(){o&&c.forEach(function(t){t.removeEventListener(\"scroll\",i.update,Ve)}),a&&l.removeEventListener(\"resize\",i.update,Ve)}},data:{}};var Qe={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function Xe(t){return t.replace(/left|right|bottom|top/g,function(t){return Qe[t]})}var Ye={start:\"end\",end:\"start\"};function Ue(t){return t.replace(/start|end/g,function(t){return Ye[t]})}function Ge(t){var e=ge(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Je(t){return xe($e(t)).left+Ge(t).scrollLeft}function Ze(t){var e=Se(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ti(t){return[\"html\",\"body\",\"#document\"].indexOf(me(t))>=0?t.ownerDocument.body:be(t)&&Ze(t)?t:ti(Ie(t))}function ei(t,e){var i;void 0===e&&(e=[]);var n=ti(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=ge(n),r=s?[o].concat(o.visualViewport||[],Ze(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ei(Ie(r)))}function ii(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ni(t,e,i){return e===te?ii(function(t,e){var i=ge(t),n=$e(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Oe();(c||!c&&\"fixed\"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Je(t),y:l}}(t,i)):_e(e)?function(t,e){var i=xe(t,!1,\"fixed\"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):ii(function(t){var e,i=$e(t),n=Ge(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=Ae(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=Ae(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Je(t),l=-n.scrollTop;return\"rtl\"===Se(s||i).direction&&(a+=Ae(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}($e(t)))}function si(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?we(s):null,r=s?Be(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case Vt:e={x:a,y:i.y-n.height};break;case Kt:e={x:a,y:i.y+i.height};break;case Qt:e={x:i.x+i.width,y:l};break;case Xt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?je(o):null;if(null!=c){var h=\"y\"===c?\"height\":\"width\";switch(r){case Gt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Jt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function oi(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Zt:a,c=i.rootBoundary,h=void 0===c?te:c,d=i.elementContext,u=void 0===d?ee:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Fe(\"number\"!=typeof g?g:He(g,Ut)),b=u===ee?ie:ee,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s=\"clippingParents\"===e?function(t){var e=ei(Ie(t)),i=[\"absolute\",\"fixed\"].indexOf(Se(t).position)>=0&&be(t)?Pe(t):t;return _e(i)?e.filter(function(t){return _e(t)&&Le(t,i)&&\"body\"!==me(t)}):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce(function(e,i){var s=ni(t,i,n);return e.top=Ae(s.top,e.top),e.right=Ee(s.right,e.right),e.bottom=Ee(s.bottom,e.bottom),e.left=Ae(s.left,e.left),e},ni(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(_e(y)?y:y.contextElement||$e(t.elements.popper),l,h,r),A=xe(t.elements.reference),E=si({reference:A,element:v,placement:s}),T=ii(Object.assign({},v,E)),C=u===ee?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===ee&&x){var k=x[s];Object.keys(O).forEach(function(t){var e=[Qt,Kt].indexOf(t)>=0?1:-1,i=[Vt,Kt].indexOf(t)>=0?\"y\":\"x\";O[t]+=k[i]*e})}return O}function ri(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?se:l,h=Be(n),d=h?a?ne:ne.filter(function(t){return Be(t)===h}):Ut,u=d.filter(function(t){return c.indexOf(t)>=0});0===u.length&&(u=d);var f=u.reduce(function(e,i){return e[i]=oi(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[we(i)],e},{});return Object.keys(f).sort(function(t,e){return f[t]-f[e]})}const ai={name:\"flip\",enabled:!0,phase:\"main\",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=we(g),b=l||(_!==g&&p?function(t){if(we(t)===Yt)return[];var e=Xe(t);return[Ue(t),e,Ue(e)]}(g):[Xe(g)]),v=[g].concat(b).reduce(function(t,i){return t.concat(we(i)===Yt?ri(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)},[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=we(O),k=Be(O)===Gt,L=[Vt,Kt].indexOf(x)>=0,S=L?\"width\":\"height\",D=oi(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?Qt:Xt:k?Kt:Vt;y[S]>w[S]&&($=Xe($));var I=Xe($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every(function(t){return t})){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find(function(e){var i=A.get(e);if(i)return i.slice(0,t).every(function(t){return t})});if(e)return T=e,\"break\"},j=p?3:1;j>0&&\"break\"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:[\"offset\"],data:{_skip:!1}};function li(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ci(t){return[Vt,Qt,Kt,Xt].some(function(e){return t[e]>=0})}const hi={name:\"hide\",enabled:!0,phase:\"main\",requiresIfExists:[\"preventOverflow\"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=oi(e,{elementContext:\"reference\"}),a=oi(e,{altBoundary:!0}),l=li(r,n),c=li(a,s,o),h=ci(l),d=ci(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{\"data-popper-reference-hidden\":h,\"data-popper-escaped\":d})}},di={name:\"offset\",enabled:!0,phase:\"main\",requires:[\"popperOffsets\"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=se.reduce(function(t,i){return t[i]=function(t,e,i){var n=we(t),s=[Xt,Vt].indexOf(n)>=0?-1:1,o=\"function\"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Xt,Qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t},{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ui={name:\"popperOffsets\",enabled:!0,phase:\"read\",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=si({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})},data:{}},fi={name:\"preventOverflow\",enabled:!0,phase:\"main\",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=oi(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=we(e.placement),b=Be(e.placement),v=!b,y=je(_),w=\"x\"===y?\"y\":\"x\",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C=\"function\"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O=\"number\"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S=\"y\"===y?Vt:Xt,D=\"y\"===y?Kt:Qt,$=\"y\"===y?\"height\":\"width\",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Gt?E[$]:T[$],F=b===Gt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?ke(H):{width:0,height:0},B=e.modifiersData[\"arrow#persistent\"]?e.modifiersData[\"arrow#persistent\"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Me(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&Pe(e.elements.arrow),X=Q?\"y\"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Me(f?Ee(N,I+V-Y-X):N,I,f?Ae(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z=\"x\"===y?Vt:Xt,tt=\"x\"===y?Kt:Qt,et=A[w],it=\"y\"===w?\"height\":\"width\",nt=et+g[Z],st=et-g[tt],ot=-1!==[Vt,Xt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Me(t,e,i);return n>i?i:n}(at,et,lt):Me(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:[\"offset\"]};function pi(t,e,i){void 0===i&&(i=!1);var n,s,o=be(e),r=be(e)&&function(t){var e=t.getBoundingClientRect(),i=Te(e.width)/t.offsetWidth||1,n=Te(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=$e(e),l=xe(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&((\"body\"!==me(e)||Ze(a))&&(c=(n=e)!==ge(n)&&be(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Ge(n)),be(e)?((h=xe(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Je(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function mi(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach(function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}}),n.push(t)}return t.forEach(function(t){e.set(t.name,t)}),t.forEach(function(t){i.has(t.name)||s(t)}),n}var gi={placement:\"bottom\",modifiers:[],strategy:\"absolute\"};function _i(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some(function(t){return!(t&&\"function\"==typeof t.getBoundingClientRect)})}function bi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?gi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:\"bottom\",orderedModifiers:[],options:Object.assign({},gi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s=\"function\"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:_e(t)?ei(t):t.contextElement?ei(t.contextElement):[],popper:ei(e)};var r,c,u=function(t){var e=mi(t);return pe.reduce(function(t,i){return t.concat(e.filter(function(t){return t.phase===i}))},[])}((r=[].concat(n,a.options.modifiers),c=r.reduce(function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t},{}),Object.keys(c).map(function(t){return c[t]})));return a.orderedModifiers=u.filter(function(t){return t.enabled}),a.orderedModifiers.forEach(function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if(\"function\"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}}),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(_i(e,i)){a.rects={reference:pi(e,Pe(i),\"fixed\"===a.options.strategy),popper:ke(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach(function(t){return a.modifiersData[t.name]=Object.assign({},t.data)});for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;\"function\"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise(function(t){h.forceUpdate(),t(a)})},function(){return r||(r=new Promise(function(t){Promise.resolve().then(function(){r=void 0,t(s())})})),r}),destroy:function(){d(),c=!0}};if(!_i(t,e))return h;function d(){l.forEach(function(t){return t()}),l=[]}return h.setOptions(i).then(function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)}),h}}var vi=bi(),yi=bi({defaultModifiers:[Ke,ui,qe,ye]}),wi=bi({defaultModifiers:[Ke,ui,qe,ye,di,ai,fi,We,hi]});const Ai=Object.freeze(Object.defineProperty({__proto__:null,afterMain:he,afterRead:ae,afterWrite:fe,applyStyles:ye,arrow:We,auto:Yt,basePlacements:Ut,beforeMain:le,beforeRead:oe,beforeWrite:de,bottom:Kt,clippingParents:Zt,computeStyles:qe,createPopper:wi,createPopperBase:vi,createPopperLite:yi,detectOverflow:oi,end:Jt,eventListeners:Ke,flip:ai,hide:hi,left:Xt,main:ce,modifierPhases:pe,offset:di,placements:se,popper:ee,popperGenerator:bi,popperOffsets:ui,preventOverflow:fi,read:re,reference:ie,right:Qt,start:Gt,top:Vt,variationPlacements:ne,viewport:te,write:ue},Symbol.toStringTag,{value:\"Module\"})),Ei=\"dropdown\",Ti=\".bs.dropdown\",Ci=\".data-api\",Oi=\"ArrowUp\",xi=\"ArrowDown\",ki=`hide${Ti}`,Li=`hidden${Ti}`,Si=`show${Ti}`,Di=`shown${Ti}`,$i=`click${Ti}${Ci}`,Ii=`keydown${Ti}${Ci}`,Ni=`keyup${Ti}${Ci}`,Pi=\"show\",ji='[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)',Mi=`${ji}.${Pi}`,Fi=\".dropdown-menu\",Hi=m()?\"top-end\":\"top-start\",Wi=m()?\"top-start\":\"top-end\",Bi=m()?\"bottom-end\":\"bottom-start\",zi=m()?\"bottom-start\":\"bottom-end\",Ri=m()?\"left-start\":\"right-start\",qi=m()?\"right-start\":\"left-start\",Vi={autoClose:!0,boundary:\"clippingParents\",display:\"dynamic\",offset:[0,2],popperConfig:null,reference:\"toggle\"},Ki={autoClose:\"(boolean|string)\",boundary:\"(string|element)\",display:\"string\",offset:\"(array|string|function)\",popperConfig:\"(null|object|function)\",reference:\"(string|element|object)\"};class Qi extends B{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=R.next(this._element,Fi)[0]||R.prev(this._element,Fi)[0]||R.findOne(Fi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Vi}static get DefaultType(){return Ki}static get NAME(){return Ei}toggle(){return this._isShown()?this.hide():this.show()}show(){if(c(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!P.trigger(this._element,Si,t).defaultPrevented){if(this._createPopper(),\"ontouchstart\"in document.documentElement&&!this._parent.closest(\".navbar-nav\"))for(const t of[].concat(...document.body.children))P.on(t,\"mouseover\",d);this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),this._menu.classList.add(Pi),this._element.classList.add(Pi),P.trigger(this._element,Di,t)}}hide(){if(c(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!P.trigger(this._element,ki,t).defaultPrevented){if(\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,\"mouseover\",d);this._popper&&this._popper.destroy(),this._menu.classList.remove(Pi),this._element.classList.remove(Pi),this._element.setAttribute(\"aria-expanded\",\"false\"),H.removeDataAttribute(this._menu,\"popper\"),P.trigger(this._element,Li,t)}}_getConfig(t){if(\"object\"==typeof(t=super._getConfig(t)).reference&&!r(t.reference)&&\"function\"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ei.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);return t}_createPopper(){if(void 0===Ai)throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)\");let t=this._element;\"parent\"===this._config.reference?t=this._parent:r(this._config.reference)?t=a(this._config.reference):\"object\"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=wi(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Pi)}_getPlacement(){const t=this._parent;if(t.classList.contains(\"dropend\"))return Ri;if(t.classList.contains(\"dropstart\"))return qi;if(t.classList.contains(\"dropup-center\"))return\"top\";if(t.classList.contains(\"dropdown-center\"))return\"bottom\";const e=\"end\"===getComputedStyle(this._menu).getPropertyValue(\"--bs-position\").trim();return t.classList.contains(\"dropup\")?e?Wi:Hi:e?zi:Bi}_detectNavbar(){return null!==this._element.closest(\".navbar\")}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map(t=>Number.parseInt(t,10)):\"function\"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"offset\",options:{offset:this._getOffset()}}]};return(this._inNavbar||\"static\"===this._config.display)&&(H.setDataAttribute(this._menu,\"popper\",\"static\"),t.modifiers=[{name:\"applyStyles\",enabled:!1}]),{...t,..._(this._config.popperConfig,[void 0,t])}}_selectMenuItem({key:t,target:e}){const i=R.find(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\",this._menu).filter(t=>l(t));i.length&&v(i,e,t===xi,!i.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=Qi.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}})}static clearMenus(t){if(2===t.button||\"keyup\"===t.type&&\"Tab\"!==t.key)return;const e=R.find(Mi);for(const i of e){const e=Qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||\"inside\"===e._config.autoClose&&!s||\"outside\"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&(\"keyup\"===t.type&&\"Tab\"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};\"click\"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i=\"Escape\"===t.key,n=[Oi,xi].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(ji)?this:R.prev(this,ji)[0]||R.next(this,ji)[0]||R.findOne(ji,t.delegateTarget.parentNode),o=Qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}P.on(document,Ii,ji,Qi.dataApiKeydownHandler),P.on(document,Ii,Fi,Qi.dataApiKeydownHandler),P.on(document,$i,Qi.clearMenus),P.on(document,Ni,Qi.clearMenus),P.on(document,$i,ji,function(t){t.preventDefault(),Qi.getOrCreateInstance(this).toggle()}),g(Qi);const Xi=\"backdrop\",Yi=\"show\",Ui=`mousedown.bs.${Xi}`,Gi={className:\"modal-backdrop\",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:\"body\"},Ji={className:\"string\",clickCallback:\"(function|null)\",isAnimated:\"boolean\",isVisible:\"boolean\",rootElement:\"(element|string)\"};class Zi extends W{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Gi}static get DefaultType(){return Ji}static get NAME(){return Xi}show(t){if(!this._config.isVisible)return void _(t);this._append();const e=this._getElement();this._config.isAnimated&&u(e),e.classList.add(Yi),this._emulateAnimation(()=>{_(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove(Yi),this._emulateAnimation(()=>{this.dispose(),_(t)})):_(t)}dispose(){this._isAppended&&(P.off(this._element,Ui),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement(\"div\");t.className=this._config.className,this._config.isAnimated&&t.classList.add(\"fade\"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=a(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),P.on(t,Ui,()=>{_(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const tn=\".bs.focustrap\",en=`focusin${tn}`,nn=`keydown.tab${tn}`,sn=\"backward\",on={autofocus:!0,trapElement:null},rn={autofocus:\"boolean\",trapElement:\"element\"};class an extends W{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return on}static get DefaultType(){return rn}static get NAME(){return\"focustrap\"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),P.off(document,tn),P.on(document,en,t=>this._handleFocusin(t)),P.on(document,nn,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,P.off(document,tn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=R.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===sn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){\"Tab\"===t.key&&(this._lastTabNavDirection=t.shiftKey?sn:\"forward\")}}const ln=\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",cn=\".sticky-top\",hn=\"padding-right\",dn=\"margin-right\";class un{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,hn,e=>e+t),this._setElementAttributes(ln,hn,e=>e+t),this._setElementAttributes(cn,dn,e=>e-t)}reset(){this._resetElementAttributes(this._element,\"overflow\"),this._resetElementAttributes(this._element,hn),this._resetElementAttributes(ln,hn),this._resetElementAttributes(cn,dn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,\"overflow\"),this._element.style.overflow=\"hidden\"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)})}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&H.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,t=>{const i=H.getDataAttribute(t,e);null!==i?(H.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(r(t))e(t);else for(const i of R.find(t,this._element))e(i)}}const fn=\".bs.modal\",pn=`hide${fn}`,mn=`hidePrevented${fn}`,gn=`hidden${fn}`,_n=`show${fn}`,bn=`shown${fn}`,vn=`resize${fn}`,yn=`click.dismiss${fn}`,wn=`mousedown.dismiss${fn}`,An=`keydown.dismiss${fn}`,En=`click${fn}.data-api`,Tn=\"modal-open\",Cn=\"show\",On=\"modal-static\",xn={backdrop:!0,focus:!0,keyboard:!0},kn={backdrop:\"(boolean|string)\",focus:\"boolean\",keyboard:\"boolean\"};class Ln extends B{constructor(t,e){super(t,e),this._dialog=R.findOne(\".modal-dialog\",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new un,this._addEventListeners()}static get Default(){return xn}static get DefaultType(){return kn}static get NAME(){return\"modal\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||P.trigger(this._element,_n,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Tn),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){this._isShown&&!this._isTransitioning&&(P.trigger(this._element,pn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Cn),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){P.off(window,fn),P.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new an({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.scrollTop=0;const e=R.findOne(\".modal-body\",this._dialog);e&&(e.scrollTop=0),u(this._element),this._element.classList.add(Cn),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,P.trigger(this._element,bn,{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){P.on(this._element,An,t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),P.on(window,vn,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),P.on(this._element,wn,t=>{P.one(this._element,yn,e=>{this._element===t.target&&this._element===e.target&&(\"static\"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(Tn),this._resetAdjustments(),this._scrollBar.reset(),P.trigger(this._element,gn)})}_isAnimated(){return this._element.classList.contains(\"fade\")}_triggerBackdropTransition(){if(P.trigger(this._element,mn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;\"hidden\"===e||this._element.classList.contains(On)||(t||(this._element.style.overflowY=\"hidden\"),this._element.classList.add(On),this._queueCallback(()=>{this._element.classList.remove(On),this._queueCallback(()=>{this._element.style.overflowY=e},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=m()?\"paddingLeft\":\"paddingRight\";this._element.style[t]=`${e}px`}if(!i&&t){const t=m()?\"paddingRight\":\"paddingLeft\";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"}static jQueryInterface(t,e){return this.each(function(){const i=Ln.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===i[t])throw new TypeError(`No method named \"${t}\"`);i[t](e)}})}}P.on(document,En,'[data-bs-toggle=\"modal\"]',function(t){const e=R.getElementFromSelector(this);[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),P.one(e,_n,t=>{t.defaultPrevented||P.one(e,gn,()=>{l(this)&&this.focus()})});const i=R.findOne(\".modal.show\");i&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(e).toggle(this)}),q(Ln),g(Ln);const Sn=\".bs.offcanvas\",Dn=\".data-api\",$n=`load${Sn}${Dn}`,In=\"show\",Nn=\"showing\",Pn=\"hiding\",jn=\".offcanvas.show\",Mn=`show${Sn}`,Fn=`shown${Sn}`,Hn=`hide${Sn}`,Wn=`hidePrevented${Sn}`,Bn=`hidden${Sn}`,zn=`resize${Sn}`,Rn=`click${Sn}${Dn}`,qn=`keydown.dismiss${Sn}`,Vn={backdrop:!0,keyboard:!0,scroll:!1},Kn={backdrop:\"(boolean|string)\",keyboard:\"boolean\",scroll:\"boolean\"};class Qn extends B{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Vn}static get DefaultType(){return Kn}static get NAME(){return\"offcanvas\"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||P.trigger(this._element,Mn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new un).hide(),this._element.setAttribute(\"aria-modal\",!0),this._element.setAttribute(\"role\",\"dialog\"),this._element.classList.add(Nn),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(In),this._element.classList.remove(Nn),P.trigger(this._element,Fn,{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&(P.trigger(this._element,Hn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Pn),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove(In,Pn),this._element.removeAttribute(\"aria-modal\"),this._element.removeAttribute(\"role\"),this._config.scroll||(new un).reset(),P.trigger(this._element,Bn)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Zi({className:\"offcanvas-backdrop\",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{\"static\"!==this._config.backdrop?this.hide():P.trigger(this._element,Wn)}:null})}_initializeFocusTrap(){return new an({trapElement:this._element})}_addEventListeners(){P.on(this._element,qn,t=>{\"Escape\"===t.key&&(this._config.keyboard?this.hide():P.trigger(this._element,Wn))})}static jQueryInterface(t){return this.each(function(){const e=Qn.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t](this)}})}}P.on(document,Rn,'[data-bs-toggle=\"offcanvas\"]',function(t){const e=R.getElementFromSelector(this);if([\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),c(this))return;P.one(e,Bn,()=>{l(this)&&this.focus()});const i=R.findOne(jn);i&&i!==e&&Qn.getInstance(i).hide(),Qn.getOrCreateInstance(e).toggle(this)}),P.on(window,$n,()=>{for(const t of R.find(jn))Qn.getOrCreateInstance(t).show()}),P.on(window,zn,()=>{for(const t of R.find(\"[aria-modal][class*=show][class*=offcanvas-]\"))\"fixed\"!==getComputedStyle(t).position&&Qn.getOrCreateInstance(t).hide()}),q(Qn),g(Qn);const Xn={\"*\":[\"class\",\"dir\",\"id\",\"lang\",\"role\",/^aria-[\\w-]*$/i],a:[\"target\",\"href\",\"title\",\"rel\"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:[\"src\",\"srcset\",\"alt\",\"title\",\"width\",\"height\"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Yn=new Set([\"background\",\"cite\",\"href\",\"itemtype\",\"longdesc\",\"poster\",\"src\",\"xlink:href\"]),Un=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Gn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Yn.has(i)||Boolean(Un.test(t.nodeValue)):e.filter(t=>t instanceof RegExp).some(t=>t.test(i))},Jn={allowList:Xn,content:{},extraClass:\"\",html:!1,sanitize:!0,sanitizeFn:null,template:\"<div></div>\"},Zn={allowList:\"object\",content:\"object\",extraClass:\"(string|function)\",html:\"boolean\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",template:\"string\"},ts={entry:\"(string|element|function|null)\",selector:\"(string|element)\"};class es extends W{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jn}static get DefaultType(){return Zn}static get NAME(){return\"TemplateFactory\"}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement(\"div\");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(\" \")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},ts)}_setContent(t,e,i){const n=R.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?r(e)?this._putElementInTemplate(a(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&\"function\"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,\"text/html\"),s=[].concat(...n.body.querySelectorAll(\"*\"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e[\"*\"]||[],e[i]||[]);for(const e of n)Gn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return _(t,[void 0,this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML=\"\",void e.append(t);e.textContent=t.textContent}}const is=new Set([\"sanitize\",\"allowList\",\"sanitizeFn\"]),ns=\"fade\",ss=\"show\",os=\".tooltip-inner\",rs=\".modal\",as=\"hide.bs.modal\",ls=\"hover\",cs=\"focus\",hs=\"click\",ds={AUTO:\"auto\",TOP:\"top\",RIGHT:m()?\"left\":\"right\",BOTTOM:\"bottom\",LEFT:m()?\"right\":\"left\"},us={allowList:Xn,animation:!0,boundary:\"clippingParents\",container:!1,customClass:\"\",delay:0,fallbackPlacements:[\"top\",\"right\",\"bottom\",\"left\"],html:!1,offset:[0,6],placement:\"top\",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',title:\"\",trigger:\"hover focus\"},fs={allowList:\"object\",animation:\"boolean\",boundary:\"(string|element)\",container:\"(string|element|boolean)\",customClass:\"(string|function)\",delay:\"(number|object)\",fallbackPlacements:\"array\",html:\"boolean\",offset:\"(array|string|function)\",placement:\"(string|function)\",popperConfig:\"(null|object|function)\",sanitize:\"boolean\",sanitizeFn:\"(null|function)\",selector:\"(string|boolean)\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\"};class ps extends B{constructor(t,e){if(void 0===Ai)throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)\");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return us}static get DefaultType(){return fs}static get NAME(){return\"tooltip\"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),P.off(this._element.closest(rs),as,this._hideModalHandler),this._element.getAttribute(\"data-bs-original-title\")&&this._element.setAttribute(\"title\",this._element.getAttribute(\"data-bs-original-title\")),this._disposePopper(),super.dispose()}show(){if(\"none\"===this._element.style.display)throw new Error(\"Please use show on visible elements\");if(!this._isWithContent()||!this._isEnabled)return;const t=P.trigger(this._element,this.constructor.eventName(\"show\")),e=(h(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute(\"aria-describedby\",i.getAttribute(\"id\"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),P.trigger(this._element,this.constructor.eventName(\"inserted\"))),this._popper=this._createPopper(i),i.classList.add(ss),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))P.on(t,\"mouseover\",d);this._queueCallback(()=>{P.trigger(this._element,this.constructor.eventName(\"shown\")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!P.trigger(this._element,this.constructor.eventName(\"hide\")).defaultPrevented){if(this._getTipElement().classList.remove(ss),\"ontouchstart\"in document.documentElement)for(const t of[].concat(...document.body.children))P.off(t,\"mouseover\",d);this._activeTrigger[hs]=!1,this._activeTrigger[cs]=!1,this._activeTrigger[ls]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute(\"aria-describedby\"),P.trigger(this._element,this.constructor.eventName(\"hidden\")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ns,ss),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute(\"id\",i),this._isAnimated()&&e.classList.add(ns),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new es({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[os]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute(\"data-bs-original-title\")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(ss)}_createPopper(t){const e=_(this._config.placement,[this,t,this._element]),i=ds[e.toUpperCase()];return wi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return\"string\"==typeof t?t.split(\",\").map(t=>Number.parseInt(t,10)):\"function\"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return _(t,[this._element,this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:\"flip\",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:\"offset\",options:{offset:this._getOffset()}},{name:\"preventOverflow\",options:{boundary:this._config.boundary}},{name:\"arrow\",options:{element:`.${this.constructor.NAME}-arrow`}},{name:\"preSetPlacement\",enabled:!0,phase:\"beforeMain\",fn:t=>{this._getTipElement().setAttribute(\"data-popper-placement\",t.state.placement)}}]};return{...e,..._(this._config.popperConfig,[void 0,e])}}_setListeners(){const t=this._config.trigger.split(\" \");for(const e of t)if(\"click\"===e)P.on(this._element,this.constructor.eventName(\"click\"),this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[hs]=!(e._isShown()&&e._activeTrigger[hs]),e.toggle()});else if(\"manual\"!==e){const t=e===ls?this.constructor.eventName(\"mouseenter\"):this.constructor.eventName(\"focusin\"),i=e===ls?this.constructor.eventName(\"mouseleave\"):this.constructor.eventName(\"focusout\");P.on(this._element,t,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusin\"===t.type?cs:ls]=!0,e._enter()}),P.on(this._element,i,this._config.selector,t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger[\"focusout\"===t.type?cs:ls]=e._element.contains(t.relatedTarget),e._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},P.on(this._element.closest(rs),as,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute(\"title\");t&&(this._element.getAttribute(\"aria-label\")||this._element.textContent.trim()||this._element.setAttribute(\"aria-label\",t),this._element.setAttribute(\"data-bs-original-title\",t),this._element.removeAttribute(\"title\"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=H.getDataAttributes(this._element);for(const t of Object.keys(e))is.has(t)&&delete e[t];return t={...e,...\"object\"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:a(t.container),\"number\"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),\"number\"==typeof t.title&&(t.title=t.title.toString()),\"number\"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger=\"manual\",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each(function(){const e=ps.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}g(ps);const ms=\".popover-header\",gs=\".popover-body\",_s={...ps.Default,content:\"\",offset:[0,8],placement:\"right\",template:'<div class=\"popover\" role=\"tooltip\"><div class=\"popover-arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>',trigger:\"click\"},bs={...ps.DefaultType,content:\"(null|string|element|function)\"};class vs extends ps{static get Default(){return _s}static get DefaultType(){return bs}static get NAME(){return\"popover\"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ms]:this._getTitle(),[gs]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const e=vs.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}g(vs);const ys=\".bs.scrollspy\",ws=`activate${ys}`,As=`click${ys}`,Es=`load${ys}.data-api`,Ts=\"active\",Cs=\"[href]\",Os=\".nav-link\",xs=`${Os}, .nav-item > ${Os}, .list-group-item`,ks={offset:null,rootMargin:\"0px 0px -25%\",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Ls={offset:\"(number|null)\",rootMargin:\"string\",smoothScroll:\"boolean\",target:\"element\",threshold:\"array\"};class Ss extends B{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=\"visible\"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ks}static get DefaultType(){return Ls}static get NAME(){return\"scrollspy\"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=a(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,\"string\"==typeof t.threshold&&(t.threshold=t.threshold.split(\",\").map(t=>Number.parseFloat(t))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(P.off(this._config.target,As),P.on(this._config.target,As,Cs,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:\"smooth\"});i.scrollTop=n}}))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(t=>this._observerCallback(t),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=R.find(Cs,this._config.target);for(const e of t){if(!e.hash||c(e))continue;const t=R.findOne(decodeURI(e.hash),this._element);l(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Ts),this._activateParents(t),P.trigger(this._element,ws,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(\"dropdown-item\"))R.findOne(\".dropdown-toggle\",t.closest(\".dropdown\")).classList.add(Ts);else for(const e of R.parents(t,\".nav, .list-group\"))for(const t of R.prev(e,xs))t.classList.add(Ts)}_clearActiveClass(t){t.classList.remove(Ts);const e=R.find(`${Cs}.${Ts}`,t);for(const t of e)t.classList.remove(Ts)}static jQueryInterface(t){return this.each(function(){const e=Ss.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}P.on(window,Es,()=>{for(const t of R.find('[data-bs-spy=\"scroll\"]'))Ss.getOrCreateInstance(t)}),g(Ss);const Ds=\".bs.tab\",$s=`hide${Ds}`,Is=`hidden${Ds}`,Ns=`show${Ds}`,Ps=`shown${Ds}`,js=`click${Ds}`,Ms=`keydown${Ds}`,Fs=`load${Ds}`,Hs=\"ArrowLeft\",Ws=\"ArrowRight\",Bs=\"ArrowUp\",zs=\"ArrowDown\",Rs=\"Home\",qs=\"End\",Vs=\"active\",Ks=\"fade\",Qs=\"show\",Xs=\".dropdown-toggle\",Ys=`:not(${Xs})`,Us='[data-bs-toggle=\"tab\"], [data-bs-toggle=\"pill\"], [data-bs-toggle=\"list\"]',Gs=`.nav-link${Ys}, .list-group-item${Ys}, [role=\"tab\"]${Ys}, ${Us}`,Js=`.${Vs}[data-bs-toggle=\"tab\"], .${Vs}[data-bs-toggle=\"pill\"], .${Vs}[data-bs-toggle=\"list\"]`;class Zs extends B{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role=\"tablist\"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),P.on(this._element,Ms,t=>this._keydown(t)))}static get NAME(){return\"tab\"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?P.trigger(e,$s,{relatedTarget:t}):null;P.trigger(t,Ns,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Vs),this._activate(R.getElementFromSelector(t)),this._queueCallback(()=>{\"tab\"===t.getAttribute(\"role\")?(t.removeAttribute(\"tabindex\"),t.setAttribute(\"aria-selected\",!0),this._toggleDropDown(t,!0),P.trigger(t,Ps,{relatedTarget:e})):t.classList.add(Qs)},t,t.classList.contains(Ks)))}_deactivate(t,e){t&&(t.classList.remove(Vs),t.blur(),this._deactivate(R.getElementFromSelector(t)),this._queueCallback(()=>{\"tab\"===t.getAttribute(\"role\")?(t.setAttribute(\"aria-selected\",!1),t.setAttribute(\"tabindex\",\"-1\"),this._toggleDropDown(t,!1),P.trigger(t,Is,{relatedTarget:e})):t.classList.remove(Qs)},t,t.classList.contains(Ks)))}_keydown(t){if(![Hs,Ws,Bs,zs,Rs,qs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter(t=>!c(t));let i;if([Rs,qs].includes(t.key))i=e[t.key===Rs?0:e.length-1];else{const n=[Ws,zs].includes(t.key);i=v(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Zs.getOrCreateInstance(i).show())}_getChildren(){return R.find(Gs,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,\"role\",\"tablist\");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute(\"aria-selected\",e),i!==t&&this._setAttributeIfNotExists(i,\"role\",\"presentation\"),e||t.setAttribute(\"tabindex\",\"-1\"),this._setAttributeIfNotExists(t,\"role\",\"tab\"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=R.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,\"role\",\"tabpanel\"),t.id&&this._setAttributeIfNotExists(e,\"aria-labelledby\",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains(\"dropdown\"))return;const n=(t,n)=>{const s=R.findOne(t,i);s&&s.classList.toggle(n,e)};n(Xs,Vs),n(\".dropdown-menu\",Qs),i.setAttribute(\"aria-expanded\",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Vs)}_getInnerElement(t){return t.matches(Gs)?t:R.findOne(Gs,t)}_getOuterElement(t){return t.closest(\".nav-item, .list-group-item\")||t}static jQueryInterface(t){return this.each(function(){const e=Zs.getOrCreateInstance(this);if(\"string\"==typeof t){if(void 0===e[t]||t.startsWith(\"_\")||\"constructor\"===t)throw new TypeError(`No method named \"${t}\"`);e[t]()}})}}P.on(document,js,Us,function(t){[\"A\",\"AREA\"].includes(this.tagName)&&t.preventDefault(),c(this)||Zs.getOrCreateInstance(this).show()}),P.on(window,Fs,()=>{for(const t of R.find(Js))Zs.getOrCreateInstance(t)}),g(Zs);const to=\".bs.toast\",eo=`mouseover${to}`,io=`mouseout${to}`,no=`focusin${to}`,so=`focusout${to}`,oo=`hide${to}`,ro=`hidden${to}`,ao=`show${to}`,lo=`shown${to}`,co=\"hide\",ho=\"show\",uo=\"showing\",fo={animation:\"boolean\",autohide:\"boolean\",delay:\"number\"},po={animation:!0,autohide:!0,delay:5e3};class mo extends B{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return po}static get DefaultType(){return fo}static get NAME(){return\"toast\"}show(){P.trigger(this._element,ao).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add(\"fade\"),this._element.classList.remove(co),u(this._element),this._element.classList.add(ho,uo),this._queueCallback(()=>{this._element.classList.remove(uo),P.trigger(this._element,lo),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(P.trigger(this._element,oo).defaultPrevented||(this._element.classList.add(uo),this._queueCallback(()=>{this._element.classList.add(co),this._element.classList.remove(uo,ho),P.trigger(this._element,ro)},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ho),super.dispose()}isShown(){return this._element.classList.contains(ho)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case\"mouseover\":case\"mouseout\":this._hasMouseInteraction=e;break;case\"focusin\":case\"focusout\":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){P.on(this._element,eo,t=>this._onInteraction(t,!0)),P.on(this._element,io,t=>this._onInteraction(t,!1)),P.on(this._element,no,t=>this._onInteraction(t,!0)),P.on(this._element,so,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=mo.getOrCreateInstance(this,t);if(\"string\"==typeof t){if(void 0===e[t])throw new TypeError(`No method named \"${t}\"`);e[t](this)}})}}return q(mo),g(mo),{Alert:X,Button:U,Carousel:St,Collapse:qt,Dropdown:Qi,Modal:Ln,Offcanvas:Qn,Popover:vs,ScrollSpy:Ss,Tab:Zs,Toast:mo,Tooltip:ps}});\n//# sourceMappingURL=bootstrap.bundle.min.js.map","import bootstrap from 'bootstrap/dist/js/bootstrap.bundle.min'\n\n// -----------------------------------------------------------------------------\n// --- html/dom/browser --------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Scroll to the given HTML ID.\n *\n * @param {String} id ID to scroll to.\n * @param {boolean} smooth. Optional smooth scrolling, default to yes.\n */\nexport function clScrollToId (id, smooth = true) {\n const element = document.getElementById(id)\n\n // open corresponding tab if ID is in there\n let tab = element?.parentElement\n while (tab) {\n // detect tab by our tab class name\n const clazz = (tab.getAttribute('class') ?? '').match(/cl-tab-[0-9]+/)\n if (clazz) {\n // find radio box that belongs to that tab + enable it\n const radio = document.querySelector(`input.${clazz}`)\n if (radio) {\n radio.checked = true\n break\n }\n }\n tab = tab.parentElement\n }\n\n // delay click one tick to give page time to update\n setTimeout(() => {\n if (smooth) {\n element?.scrollIntoView({ behavior: 'smooth' })\n } else {\n element?.scrollIntoView()\n }\n }, 0)\n}\n\nexport function setDomainCookieJson (name, value, maxAge = 60 * 60 * 24 * (365 + 30)) {\n const b64 = btoa(JSON.stringify(value))\n document.cookie = `${name}=${b64}; max-age=${maxAge}; domain=${getDomain()}; path=/; SameSite=Lax;`\n}\n\nexport function getDomainCookieJson (name) {\n for (const cookie of document?.cookie?.split(/; */) ?? []) {\n const [key, value] = cookie.split('=')\n if (key === name) {\n try {\n return JSON.parse(atob(value))\n } catch (e) {\n e.ignore?.() // ignore reason\n return {}\n }\n }\n }\n return {}\n}\n\nfunction getDomain () {\n const hostname = window.location.hostname ?? 'unknown'\n if (hostname.match(/^[0-9]+.[0-9]+.[0-9]+.[0-9]+$/)) {\n // IP domain\n return hostname\n }\n const parts = hostname.split('.').reverse()\n if (parts.length > 1) {\n // regular multi-part domain name\n return `.${parts[1]}.${parts[0]}`\n } else {\n // single-name domain like 'localhost'\n return parts[0]\n }\n}\n\n// -----------------------------------------------------------------------------\n// --- modals ------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\nlet modal = null // the open modal (if any)\n\n/**\n * Hide a bootstrap modal via it's ID.\n *\n * Will hide it but not delete the DOM elements.\n *\n * @param {string} id ID of modal.\n */\nexport function clModalHide () {\n modal?.hide()\n modal = null\n}\n\n/**\n * Show a bootstrap modal via it's ID.\n *\n * Will also auto-focus the first autofocus field.\n *\n * @param {string} id ID of modal.\n * @param {object} value Optional value to store on the modal.\n */\nexport function clModalShow (id, value) {\n clModalHide()\n\n // find & show the modal\n const element = document.getElementById(id)\n if (element) {\n modal = new bootstrap.Modal(element, { backdrop: 'static' })\n modal.value = value\n modal.id = id\n modal.show()\n\n // focus the first auto-focus field in the Modal\n const autofocus = document.querySelector(`#${id} [autofocus]`)\n if (autofocus) autofocus.focus()\n }\n}\n\n/**\n * Retrieve an optional value/data object stored in the modal.\n *\n * @param {string} id ID of modal.\n * @return {object} Stored object or undefined.\n */\nexport function clModalValue (id) {\n return bootstrap.Modal.getInstance(document.getElementById(id))?.value\n}\n\n/**\n * Determine if a modal is open.\n *\n * @return {Boolean} True if a modal is currently open.\n */\nexport function clModalIsShown (modalId) {\n if (!modal) return false\n if (!modalId) return modal._isShown\n return modal.id === modalId && modal._isShown\n}\n\n/**\n * Handle navigation events for modals. Back closes modal.\n *\n * @param to Vue's to-route.\n * @returns True if a modal was closed instead of navigating away.\n */\nexport function clModalBack (to) {\n if (clModalIsShown()) {\n clModalHide()\n if (to.meta?.ignoreModal) {\n return false\n }\n return true\n }\n return false\n}\n\n// -----------------------------------------------------------------------------\n// --- paginator ---------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Cut a data array in pages and fetch a given page for ClPagination.\n *\n * @param {Array} array Array to split. If undefined considered to be empty.\n * @param {Number} pageNo Zero-based page, defaults to 0.\n * @param {Number} pageSize Page size, defaults to 25.\n * @return {Array} Requested page as array, or empty array if page does not exist.\n */\nexport function clPaginate (array, pageNo = 0, pageSize = 25) {\n return array?.slice(pageNo * pageSize, pageNo * pageSize + pageSize) ?? []\n}\n\n// -----------------------------------------------------------------------------\n// --- forms -------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Focus an HTML element\n *\n * @param {String} selector What to focus. Best used as id like '#thisElement'.\n */\nexport function clFocus (selector = '#invalid') {\n document.querySelector(selector)?.focus()\n}\n\n/**\n * Reset a form.\n *\n * Called before (re)showing forms. Will do:\n * - set autofocus\n * - set (optional) $refs of ClField* to valid\n *\n * @param {String} id HTML ID of form to reset.\n * @param {Array} fields Optional array of $refs to ClFields.\n */\nexport function clFormReset (id, fields = []) {\n for (const field of fields) {\n field.valid = true\n }\n // autofocus first autofocus-field\n const autofocus = document.querySelector(`#${id} [autofocus]`)\n autofocus?.focus()\n}\n\n/**\n * Resets a form field to the previous value and removes appended validation classes.\n *\n * @param {ref} ref a form field object refference\n * @param {Any} oldValue a value that needs to be reassigned\n */\nexport function clFormFieldReset (ref, oldValue) {\n if (ref) {\n ref.modelValue = oldValue\n ref.valid = true\n }\n}\n\n/**\n * Check if any of the inputs in a form are invalid.\n *\n * Will autofocus the first wrong input (if any).\n *\n * @param {string} id ID of form.\n * @param {string[]} moreSelectors Optional additional classes that mark invalid fields.\n * @param {string[]} moreTriggers Optional additional classes mark elements that should be focused & blurred to trigger validation.\n * @return {boolean} True if form is OK.\n */\nexport function clFormIsValid (id, moreSelectors = [], moreTriggers = []) {\n const form = document.querySelector(`#${id}`)\n if (!form) {\n // not a form at all\n console.error('can’t find/validate form', id)\n return false\n }\n\n // force trigger validation\n // as some inputs like the ace editor do custom validation based on events,\n // we fire various event/element/class combinations to make sure custom handlers run.\n document\n .querySelectorAll(clSubselectorQuery(`#${id}`, ['input', '.form-control', ...moreTriggers]))\n .forEach(input => {\n input.focus()\n input.blur()\n })\n\n if (\n form.checkValidity() === false ||\n document.querySelector(clSubselectorQuery(`#${id}`, [':invalid', '.invalid', ...moreSelectors]))\n ) {\n clFormFieldFocusFirstInvalid(id, moreSelectors)\n return false\n }\n\n return true\n}\n\n/**\n * Async version of clFormIsValid.\n *\n * Useful for complicated inputs like ACE editor.\n *\n * @param {string} id ID of form.\n * @param {string[]} moreSelectors Optional additional classes that mark invalid fields.\n * @param {string[]} moreTriggers Optional additional classes mark elements that should be focused & blurred to trigger validation.\n * @return {boolean} Promise of true if form is OK.\n */\nexport async function clFormIsValidAsync (id, moreSelectors = [], moreTriggers = []) {\n const form = document.getElementById(id)\n if (!form) {\n // not a form at all\n console.error('can’t find/validate form', id)\n return Promise.resolve(false)\n }\n\n // force trigger validation\n // as some inputs like the ace editor do custom validation based on events,\n // we fire various event/element/class combinations to make sure custom handlers run.\n document\n .querySelectorAll(clSubselectorQuery(`#${id}`, ['input', '.form-control', ...moreTriggers]))\n .forEach(input => {\n input.focus()\n input.blur()\n })\n document.querySelectorAll(`#${id} .ace_editor`).forEach(input => {\n input.click()\n })\n\n // give JS engine one tick time to update all invalid classes\n return new Promise(resolve =>\n setTimeout(() => {\n if (\n form.checkValidity() === false ||\n document.querySelector(\n clSubselectorQuery(`#${id}`, [':invalid', '.invalid', ...moreSelectors])\n )\n ) {\n clFormFieldFocusFirstInvalid(id, moreSelectors)\n resolve(false)\n return\n }\n resolve(true)\n })\n )\n}\n\n/**\n * Set the focus in the first autofocus field of the given form (if any).\n *\n * Usually to be called in Vue's mounted() method.\n *\n * @param {string} formId HTML ID of form.\n */\nexport function clFormAutofocus (formId) {\n const invalid = document.querySelector(`#${formId} [autofocus]`)\n invalid?.focus()\n}\n\n/**\n * Set the focus in the first invalid field of the given form (if any).\n *\n * @param {string} formId HTML ID of form.\n * @param {string[]} moreSelectors Optional additional classes that mark invalid fields.\n */\nexport function clFormFieldFocusFirstInvalid (formId, moreSelectors = []) {\n const invalid = document.querySelector(\n clSubselectorQuery(`#${formId}`, [':invalid', '.invalid', ...moreSelectors])\n )\n invalid?.focus()\n}\n\nexport function clSubselectorQuery (main, subselectors) {\n const selectors = []\n for (const subselector of subselectors) {\n selectors.push(`${main} ${subselector}`)\n }\n return selectors.join(', ')\n}\n\n// -----------------------------------------------------------------------------\n// --- formatters --------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Convert bytes into human-readable format.\n *\n * @param {Number} bytes Bytes to format, e.g. 1212345678.\n * @return {String} Formatted size, e.g. '12MB'.\n */\nexport function clFormatFilesize (bytes) {\n if (bytes < 1024) return `${bytes}B`\n if (bytes < 1024 * 1024) return `${Math.floor(bytes / 1024)}kB`\n if (bytes < 1024 * 1024 * 1024) return `${Math.floor(bytes / 1024 / 1024)}MB`\n return `${Math.floor(bytes / 1024 / 1024 / 1024)}GB`\n}\n\n/**\n * Format an UTC date into our UI version.\n *\n * @param {Date} date Date to format.\n * @return {string} Formatted date, e.g. '01 Aug 2021'.\n */\nexport function clFormatDateUTC (date) {\n // we use toISOString() to discard timezone information in date object\n const [yyyy, mm, dd] = date.toISOString().split(/[-T:.Z]/)\n const mmm = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][\n mm - 1\n ]\n return `${dd} ${mmm} ${yyyy}`\n}\n\n/**\n * Format a date into our UI version.\n *\n * @deprecated use clFormatDateUTC instead to avoid unexpected auto-timezone-shifts.\n *\n * @param {Date} date Date to format.\n * @return {string} Formatted date, e.g. '01 Aug 2021'.\n */\nexport function clFormatDate (date) {\n return clFormatDateUTC(date)\n}\n\n/**\n * Format a time into our UI version.\n *\n * @param {Date} date Date to format, assumed to be UTC.\n * @param {boolean} seconds If true, seconds will be appended.\n * @return {string} Formatted date, e.g. '18:21' or '18:21:59' (incl. seconds).\n */\nexport function clFormatTimeUTC (date, seconds = false) {\n // we use toISOString() to discard timezone information in date object\n const utc = date.toISOString().split(/[-T:.Z]/)\n return seconds ? `${utc[3]}:${utc[4]}:${utc[5]}` : `${utc[3]}:${utc[4]}`\n}\n\n/**\n * Format a date and time into our UI version.\n *\n * @param {Date} date Date to format.\n * @param {boolean} seconds If true, seconds will be appended.\n * @return {string} Formatted date, e.g. '01 Aug 2021 18:21' or '01 Aug 2021 18:21:59' (incl. seconds).\n */\nexport function clFormatDateTimeUTC (date, seconds = false) {\n return `${clFormatDateUTC(date)} ${clFormatTimeUTC(date, seconds)}`\n}\n\n/**\n * Format a date and time into a sortable string.\n *\n * @param {Date} date Date to format.\n * @param {boolean} year If true (default), the output will contain a year.\n * @param {boolean} month If true (default), the output will contain a year.\n * @param {boolean} day If true (default), the output will contain a year.\n * @param {boolean} hour If true (default), the output will contain hour.\n * @param {boolean} minute If true (default), the output will contain hours and minutes.\n * @param {boolean} seconds If true (default false), the output will contain seconds.\n * @return {string} Formatted date, e.g. '2021-08-01 18:21'.\n */\nexport function clFormatDateTimeTabularUTC (\n date,\n year = true,\n month = true,\n day = true,\n time = true,\n seconds = false\n) {\n const YYYY = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const MM = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date)\n const DD = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date)\n const [hh, mm, ss] = [\n ('' + date.getUTCHours()).padStart(2, '0'),\n ('' + date.getUTCMinutes()).padStart(2, '0'),\n ('' + date.getUTCSeconds()).padStart(2, '0')\n ]\n\n let result = ''\n if (year) result += ` ${YYYY}`\n if (month) result += `-${MM}`\n if (day) result += `-${DD}`\n if (time) result += ` ${hh}:${mm}`\n if (seconds) result += `:${ss}`\n\n return result.trim()\n}\n\n/**\n * Format the duration between two dates. Format can adapt on scale of duraction (years/weeks, milliseconds, ...)\n *\n * @param {Date} from First, smaller date.\n * @param {Date} until Second, larger date.\n * @param {boolean} seconds If true (default), :seconds will be included.\n * @param {boolean} ms If true (not default), .ms will be included.\n * @return {string} Formatted durtion in hh:mm:ss, e.g. '[02:59:58.456].\n */\nexport function clFormatDuration (from, until, seconds = true, ms = false) {\n let delta = until.getTime() - from.getTime()\n if (ms) {\n delta += 1\n } else if (seconds) {\n delta += 1000\n } else {\n delta += 60 * 1000\n }\n\n const msms = ('' + (delta % 1000)).padStart(3, '0')\n delta = Math.floor(delta / 1000)\n const ss = ('' + (delta % 60)).padStart(2, '0')\n delta = Math.floor(delta / 60)\n const mm = ('' + (delta % 60)).padStart(2, '0')\n delta = Math.floor(delta / 60)\n const hh = ('' + delta).padStart(2, '0')\n\n if (ms) return `${hh}:${mm}:${ss}.${msms}`\n if (seconds) return `${hh}:${mm}:${ss}`\n return `${hh}:${mm}`\n}\n\n/**\n * Format a date period into our UI version.\n *\n * @param {Date} date Date to format.\n * @return {string} Formatted period, e.g. 'Aug 2021'.\n */\nexport function clFormatPeriod (date) {\n const yyyy = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const mmm = new Intl.DateTimeFormat('en', { month: 'short' }).format(date)\n return `${mmm} ${yyyy}`\n}\n\n/**\n * Format a number / value.\n *\n * @param {Number} amount Amount to format, e.g. 12000.\n * @return {Number} Formatted string for UI, e.g. '12,000'.\n */\nexport function clFormatNumber (amount, decimalPlaces = 0) {\n return amount.toLocaleString('en', { minimumFractionDigits: decimalPlaces })\n}\n\n/**\n * Format a currency value.\n *\n * @param {Number} amount Amount (in cent) to format, e.g. 4300.\n * @param {String} currency Currency to attach, e.g. 'EUR'.\n * @param {Number} decimalPlaces Number of decimal places in the amount. Defaults to 2.\n * @return {Number} Formatted amount, e.g. '€ 43.00'.\n */\nexport function clFormatAmount (amount, currency, decimalPlaces = 2) {\n switch (currency) {\n case 'EUR':\n currency = '€'\n break\n case 'USD':\n currency = '$'\n break\n default:\n }\n return `${currency} ${clFormatNumber(amount / 10 ** decimalPlaces, decimalPlaces)}`\n}\n\n/**\n * Format a numeric range.\n *\n * @param {Number} from Value A.\n * @param {Number} to Value B.\n * @return {Number} E.g. '123 - 321'.\n */\nexport function clFormatRange (from, to) {\n return `${clFormatNumber(from)} - ${clFormatNumber(to)}`\n}\n\n/**\n * Formats cardNumber into asterisk obfuscated last 4 digits string\n *\n * @param {String} cardNumber Credit card number with or without spaces.\n * @return {String} String for UI with only least significant digits visible.\n */\nexport function clFormatCardNumber (cardNumber) {\n return `**** **** **** ${cardNumber.replace(/ /g, '').substr(-4)}`\n}\n\n// -----------------------------------------------------------------------------\n// --- validators --------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Make an API call is only made once at a time.\n *\n * Also does some often used glue code for form/submit valid checking.\n *\n * @param {Object} component A vue component that wants to call the API.\n * @param {Object} callback The actuall API call that will return a Result/Error promise.\n * @param {String} id Optional form ID to check befor submitting.\n * @return {Promise<any>} The (wrapped) promise that callback() returned.\n */\nexport function clSynchronizedSubmit (component, callback, id = component.ID_FORM) {\n if (id) {\n if (clFormIsValid(id) && !component.submitting) {\n component.submitting = true\n return callback().finally(() => {\n component.submitting = false\n })\n }\n } else {\n if (!component.submitting) {\n component.submitting = true\n return callback().finally(() => {\n component.submitting = false\n })\n }\n }\n return Promise.resolve()\n}\n\n/**\n * Async version of clSynchronizedSubmit.\n *\n * Useful if form contains async form validation inputs. Requires a form ID to work.\n *\n * @param {Object} component A vue component that wants to call the API.\n * @param {Object} callback The actuall API call that will return a Result/Error promise.\n * @param {String} id Mandatory form ID to check befor submitting.\n * @return {Promise<any>} The (wrapped) promise that callback() returned.\n */\nexport function clSynchronizedSubmitAsync (component, callback, id = component.ID_FORM) {\n if (!component.submitting) {\n return clFormIsValidAsync(id).then(success => {\n if (success) {\n component.submitting = true\n return callback().finally(() => {\n component.submitting = false\n })\n }\n })\n }\n return Promise.resolve()\n}\n\n// -----------------------------------------------------------------------------\n// --- sorting -----------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\nexport function _getProperty (object, property) {\n const path = property.split('.')\n const topProperty = path.shift()\n const o = object[topProperty]\n if ([undefined, null].includes(o)) return o\n if (path.length > 0) {\n return _getProperty(o, path.join('.'))\n } else {\n return o\n }\n}\n\n/**\n * Sort an object array by one of its properties\n *\n * @param {Object[] | Function} original Array or function to sort.\n * @param {String} property Property name of a and b to compare.\n * @param {boolean} caseSensitive If true, compare case insensitive.\n * @return {Object[]} Sorted array.\n */\nexport function clSort (original, property, order = 'ASC', caseSensitive = false) {\n if (!original) return [] // can’t sort null/undefined/...\n const copy = typeof original === 'function' ? [...original()] : [...original]\n\n const cmp = (a, b) => a.localeCompare(b, undefined, { ignorePunctuation: true })\n\n if (order === 'ASC') {\n return copy.sort((a, b) => {\n a = _getProperty(a, property) ?? ''\n b = _getProperty(b, property) ?? ''\n if (typeof a === 'string' && typeof b === 'string') {\n if (caseSensitive) {\n return cmp(a.toUpperCase(), b.toUpperCase())\n } else {\n return cmp(a, b)\n }\n } else {\n if (a > b) return 1\n if (a < b) return -1\n }\n return 0\n })\n } else {\n return copy.sort((a, b) => {\n a = _getProperty(a, property) ?? ''\n b = _getProperty(b, property) ?? ''\n if (typeof a === 'string' && typeof b === 'string') {\n if (caseSensitive) {\n return cmp(b.toUpperCase(), a.toUpperCase())\n } else {\n return cmp(b, a)\n }\n } else {\n if (a < b) return 1\n if (a > b) return -1\n }\n return 0\n })\n }\n}\n\n/**\n * Create a helper object for table sorting.\n *\n * @param sort Sort method in charge of resorting the data.\n * @param initialCol Zero-based initial col to sort, defaults to 0.\n * @param initialOrder Initial sort order, defaults to 'ASC'\n * @returns Object expeced by table sort.\n */\nexport function clTableSorter (sorter, initialCol = 0, initialOrder = 'ASC') {\n return {\n col: initialCol,\n order: initialOrder,\n set: function (col, order) {\n const sortedOrder = this.sort(col, order)\n this.col = col\n this.order = sortedOrder\n },\n get: function (col) {\n return this.col === col ? this.order : 'NONE'\n },\n sorted: [],\n sorter,\n sort: function (col = this.col, order = this.order) {\n const { sorted, sortedOrder } = this.sorter(col, order)\n this.sorted = sorted\n return sortedOrder\n }\n }\n}\n\n/**\n * Create a typical helper object for table sorting of array of objects.\n *\n * @param dataCallback Function that returns the to-be-sorted object array.\n * @param keys Columns/keys in object to sort.\n * @param initialCol Initial column to sort for, zero Based. If negative, sort reverse (1-based).\n * @param pageNo Pagination page, zero-based.\n * @param pageSize Pagination page size, defaults to 'one big page'.\n * @returns Object expeced by table sort.\n */\nexport function clTableSorterObjects (\n dataCallback,\n keys,\n initialCol = 0,\n pageNoCallback = () => 0,\n pageSizeCallback = () => Number.MAX_SAFE_INTEGER\n) {\n return clTableSorter(\n (col, order) => {\n return {\n sorted: clPaginate(\n clSort(dataCallback, keys[col], order),\n pageNoCallback(),\n pageSizeCallback()\n ),\n sortedOrder: order\n }\n },\n initialCol >= 0 ? initialCol : initialCol * -1 - 1,\n initialCol >= 0 ? 'ASC' : 'DESC'\n )\n}\n\n// -----------------------------------------------------------------------------\n// --- misc --------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * Remove characters from user-provided IDs that can’t appear in our UUIDs or (CS) urns.\n */\nexport function clSanitizeId (id) {\n return id.replace(/[^A-Za-z0-9:_-]*/g, '')\n}\n\n/**\n * Debounce a method to be called not faster than x ms.\n *\n * Usually used for do-as-you-type input elements.\n *\n * @param {function} callback Function to debounce.\n * @param {number} ms Optional time to debounce. Defaults to 500.\n * @param {string} key Optional name/key for this debounce, in case multiple concurrent exist.\n */\nexport function clDebounce (callback, ms = 500, key = 'none') {\n clearTimeout(timeouts.get(key))\n timeouts.set(key, setTimeout(callback, ms))\n}\nconst timeouts = new Map()\n\n/**\n * Generate a random string/sentence.\n *\n * @param {number} length Number of words in sentence, defaults to 3.\n * @param {string[]} words Words to choose from, defaults to lorem impsum words.\n * @return {string} Random string.\n */\nexport function clRandomString (\n length = 3,\n words = [\n 'lorem',\n 'ipsum',\n 'dolor',\n 'sit',\n 'amet',\n 'consectetur',\n 'adipiscing',\n 'elit',\n 'eiusmod',\n 'tempor',\n 'incididunt',\n 'labore',\n 'et',\n 'dolore',\n 'magna',\n 'aliqua'\n ]\n) {\n let string = ''\n for (let i = 0; i < length; i++) {\n string += ' ' + words[Math.floor(Math.random() * words.length)]\n }\n return string.substr(1)\n}\n\n/**\n * Generate a random array.\n *\n * @param {number} length Number of words/entries in array, defaults to 3.\n * @param {string[]} words Words to choose from, defaults to greek letters.\n * @return {string[]} Random string array.\n */\nexport function clRandomList (\n length = 3,\n words = [\n 'alpha',\n 'beta',\n 'gamma',\n 'delta',\n 'epsilon',\n 'zeta',\n 'eta',\n 'theta',\n 'iota',\n 'kappa',\n 'lambda',\n 'omicorn'\n ]\n) {\n const array = []\n for (let i = 0; i < length; i++) {\n array.push(words[Math.floor(Math.random() * words.length)])\n }\n return array\n}\n\n/**\n * Copy data to the clipboard.\n *\n * @param {string} data Data to copy.\n */\nexport function clCopyData (data) {\n navigator.clipboard.writeText(data)\n}\n\n/**\n * Trigger a series of store reloads and wait for them to set a loaded flag.\n *\n * @param {ComponentCustomProperties} component Vue component to set the loaded flag on.\n * @param {function[]} forced Array of callbacks will always run (forced)\n * @param {function[]} optional (Optional) Array of callbacks that will only load if not yet loaded (non-forced)\n * @param {boolean} loading If false, the component.loading Promise won’t be handled.\n * @returns A promise of all the triggered callbacks.\n * @deprecated use clReload() instead\n */\nexport function clReloadStore (component, forced = [], optional = [], loading = true) {\n const promises = []\n\n for (const action of forced) {\n if (typeof action === 'function') {\n promises.push(action())\n } else if (action) {\n // action = [function(), param1]\n const f = action.shift()\n promises.push(f(...action))\n }\n }\n\n for (const action of optional) {\n if (typeof action === 'function') {\n promises.push(action(false))\n } else if (action) {\n // action = [function(), param]\n const f = action.shift()\n promises.push(f(action.shift(), false))\n }\n }\n\n if (loading) {\n // if true, we keep a .loading promise in the component\n component.loading = Promise.all(promises).finally(() => {\n if (loading) component.loading = null\n })\n return component.loading\n } else {\n return Promise.all(promises)\n }\n}\n\n/**\n * Trigger a series of store reloads and wait for them to set a loaded flag.\n *\n * @param {ComponentCustomProperties} component Vue component to set the loaded flag on.\n * @param {function[]} forced Array of callbacks will always run (forced)\n * @param {function[]} optional (Optional) Array of callbacks that will only load if not yet loaded (non-forced)\n * @param {boolean} loading If false, the component.loading Promise won’t be handled.\n * @returns A promise of all the triggered callbacks.\n */\nexport function clReload (component, forced = [], optional = [], loading = true) {\n const promises = []\n\n for (const action of forced) {\n if (typeof action === 'function') {\n promises.push(action(true))\n } else if (action) {\n // action = [function(), param, param, ...]\n const f = action.shift()\n promises.push(f(true, ...action)) // true = force mode\n }\n }\n\n for (const action of optional) {\n if (typeof action === 'function') {\n promises.push(action(false))\n } else if (action) {\n // action = [function(), param, param, ...]\n const f = action.shift()\n promises.push(f(false, ...action)) // false = non-force mode\n }\n }\n\n if (loading) {\n // if true, we keep a .loading promise in the component\n component.loading = Promise.all(promises).finally(() => {\n if (loading) component.loading = null\n })\n return component.loading\n } else {\n return Promise.all(promises)\n }\n}\n\nexport function clSleep (ms) {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\n// -----------------------------------------------------------------------------\n// --- themes ------------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\nexport function clThemeSetup () {\n const settings = getDomainCookieJson('cl_ui_settings')\n const dark = settings?.theme === 'dark'\n clThemeSetDark(dark) // re-set to prolong expiration\n const checkbox = document.querySelector('#cl-mode-dark')\n if (checkbox) {\n checkbox.checked = dark\n checkbox.addEventListener('change', () => {\n clThemeSetDark(checkbox.checked)\n })\n }\n return dark\n}\n\nexport function clThemeSetDark (dark) {\n const settings = getDomainCookieJson('cl_ui_settings')\n settings.theme = dark ? 'dark' : 'light'\n setDomainCookieJson('cl_ui_settings', settings)\n}\n","// utils for Vue.js\n\nimport bootstrap from 'bootstrap/dist/js/bootstrap.bundle.min'\nimport { nextTick } from 'vue'\n\n// -----------------------------------------------------------------------------\n// --- tooltips ----------------------------------------------------------------\n// -----------------------------------------------------------------------------\n\n/**\n * v-tooltip directive.\n */\nexport const clVTooltip = {\n mounted (element, binding) {\n let color = ''\n for (const cls of [\n 'cl-tooltip-primary',\n 'cl-tooltip-secondary',\n 'cl-tooltip-light',\n 'cl-tooltip-dark'\n ]) {\n if (element.classList.contains(cls)) color += ` ${cls}`\n }\n\n const tooltip = new bootstrap.Tooltip(element, {\n title: binding.value,\n placement: binding.arg,\n html: true,\n trigger: 'hover',\n delay: { show: 65, hide: 0 },\n template: `<div class=\"tooltip cl-tooltip${color}\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>`\n })\n\n element.__tooltipInstance = tooltip\n\n // force-hide other tooltips here\n element.addEventListener('show.bs.tooltip', function () {\n const tooltips = document.querySelectorAll('.cl-tooltip')\n tooltips.forEach(tip => tip.remove())\n })\n\n return tooltip\n },\n\n unmounted (element) {\n const tooltip = element.__tooltipInstance\n if (tooltip) {\n if (typeof tooltip.dispose === 'function') {\n tooltip.dispose()\n }\n\n const tooltipElement = document.querySelector('.cl-tooltip')\n if (tooltipElement) {\n tooltipElement.remove()\n }\n\n delete element.__tooltipInstance\n }\n }\n}\n\n/**\n * v-clipboard directive.\n */\nexport const clVClipboard = {\n mounted (element, binding) {\n element.addEventListener('click', function () {\n const value = typeof binding.value === 'function' ? binding.value() : binding.value\n\n // copy to clipboard\n if (binding.value !== '') {\n navigator.clipboard?.writeText(value) // note: only works on https/localhost\n }\n\n // add flash indicator\n element.classList.add('cl-animation-flash-text')\n setTimeout(() => {\n element.classList.remove('cl-animation-flash-text')\n }, 1500)\n })\n }\n}\n\n// -----------------------------------------------------------------------------\n// --- Vue.js wrapper/helper ---------------------------------------------------\n// -----------------------------------------------------------------------------\n\n// $ref typescript cast methods ------------------------------------------------\n\nexport function clRefClField (ref) {\n return ref\n}\n\nexport function clRefClFieldGroup (ref) {\n return ref\n}\n\nexport function clRefHTMLElement (ref) {\n return ref\n}\n\nexport function clRefFocus (ref) {\n nextTick(() => {\n clRefHTMLElement(ref)?.focus()\n })\n}\n\nexport function clBackOrGoto (router, routeName) {\n const from = router.from\n if (router.currentRoute.value.name?.toString().startsWith(from ?? '-')) {\n router.go(-1)\n } else {\n router.replace({ name: routeName })\n }\n}\n","<!-- used at end of forms/pages to provide uniform back/cancel + OK buttons -->\n<template>\n <cl-section-main class=\"cl-back-cancel-ok\">\n <slot />\n <div\n class=\"cl-spacing-box cl-spacing-medium it-buttons\"\n :class=\"[backHidden ? 'text-end' : 'cl-spread']\"\n >\n <button\n v-if=\"!backHidden\"\n type=\"button\"\n class=\"btn cl-color-secondary cl-back-cancel-ok-back it-cancel\"\n @click=\"abort()\"\n >\n <span v-if=\"dirty\">{{ cancel }}</span>\n <span v-else>{{ back }}</span>\n </button>\n <button\n v-if=\"!hidden\"\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{ 'cl-btn-spinner': spinner }\"\n :disabled=\"disabled || !dirty\"\n @click=\"$emit('ok')\"\n >\n <span>{{ ok }}</span>\n </button>\n </div>\n\n <cl-modal :id=\"ID_MODAL\">\n <template #title> Unsaved changes </template>\n <template #body>\n <slot name=\"modal\">\n <p>There are unsaved changes. Do you want to discard them or continue editing?</p>\n </slot>\n </template>\n <template #footer-left>\n <button\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"emit('cancel', true)\"\n >\n Discard changes\n </button>\n </template>\n <template #footer-right>\n <button type=\"button\" class=\"btn cl-color-primary it-ok\" @click=\"clModalHide()\">\n Continue editing\n </button>\n </template>\n </cl-modal>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\nimport { clBackOrGoto } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClBackCancelOk',\n props: {\n ok: {\n type: String,\n default: 'Ok'\n },\n back: {\n type: String,\n default: 'Back'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dirty: {\n type: Boolean,\n default: false\n },\n hidden: {\n type: Boolean,\n default: false\n },\n backHidden: {\n type: Boolean,\n default: false\n },\n backRoute: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n emits: ['ok', 'cancel'],\n data () {\n return {\n ID_MODAL: 'cl-modal-back-cancel-ok'\n }\n },\n methods: {\n clModalHide: CL.clModalHide,\n abort: function (): void {\n if (this.dirty) {\n CL.clModalShow(this.ID_MODAL, {})\n } else {\n this.goBack()\n }\n },\n emit: function (what: 'ok' | 'cancel'): void {\n CL.clModalHide()\n if (what === 'cancel') {\n this.goBack()\n } else {\n this.$emit(what)\n }\n },\n goBack: function () {\n if (this.backRoute) {\n clBackOrGoto(this.$router, this.backRoute)\n } else {\n this.$emit('cancel')\n }\n }\n }\n})\n</script>\n","<!-- used at end of forms/pages to provide uniform back/cancel + OK buttons -->\n<template>\n <cl-section-main class=\"cl-back-cancel-ok\">\n <slot />\n <div\n class=\"cl-spacing-box cl-spacing-medium it-buttons\"\n :class=\"[backHidden ? 'text-end' : 'cl-spread']\"\n >\n <button\n v-if=\"!backHidden\"\n type=\"button\"\n class=\"btn cl-color-secondary cl-back-cancel-ok-back it-cancel\"\n @click=\"abort()\"\n >\n <span v-if=\"dirty\">{{ cancel }}</span>\n <span v-else>{{ back }}</span>\n </button>\n <button\n v-if=\"!hidden\"\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{ 'cl-btn-spinner': spinner }\"\n :disabled=\"disabled || !dirty\"\n @click=\"$emit('ok')\"\n >\n <span>{{ ok }}</span>\n </button>\n </div>\n\n <cl-modal :id=\"ID_MODAL\">\n <template #title> Unsaved changes </template>\n <template #body>\n <slot name=\"modal\">\n <p>There are unsaved changes. Do you want to discard them or continue editing?</p>\n </slot>\n </template>\n <template #footer-left>\n <button\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"emit('cancel', true)\"\n >\n Discard changes\n </button>\n </template>\n <template #footer-right>\n <button type=\"button\" class=\"btn cl-color-primary it-ok\" @click=\"clModalHide()\">\n Continue editing\n </button>\n </template>\n </cl-modal>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\nimport { clBackOrGoto } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClBackCancelOk',\n props: {\n ok: {\n type: String,\n default: 'Ok'\n },\n back: {\n type: String,\n default: 'Back'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n disabled: {\n type: Boolean,\n default: false\n },\n dirty: {\n type: Boolean,\n default: false\n },\n hidden: {\n type: Boolean,\n default: false\n },\n backHidden: {\n type: Boolean,\n default: false\n },\n backRoute: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n emits: ['ok', 'cancel'],\n data () {\n return {\n ID_MODAL: 'cl-modal-back-cancel-ok'\n }\n },\n methods: {\n clModalHide: CL.clModalHide,\n abort: function (): void {\n if (this.dirty) {\n CL.clModalShow(this.ID_MODAL, {})\n } else {\n this.goBack()\n }\n },\n emit: function (what: 'ok' | 'cancel'): void {\n CL.clModalHide()\n if (what === 'cancel') {\n this.goBack()\n } else {\n this.$emit(what)\n }\n },\n goBack: function () {\n if (this.backRoute) {\n clBackOrGoto(this.$router, this.backRoute)\n } else {\n this.$emit('cancel')\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClBackCancelOk from './template.vue'\n\nClBackCancelOk.install = (Vue: App) => {\n Vue.component(ClBackCancelOk.name ?? 'ClNoName', ClBackCancelOk)\n}\n\nexport default ClBackCancelOk\n","<template>\n <div v-if=\"visible\" :id=\"id\" class=\"card cl-card cl-cookie-banner\" :class=\"clazz\">\n <div class=\"card-body\">\n <slot>\n <p class=\"cl-p-small\">\n For our services to work, we use essential cookies which we control. We'd also like to\n include others to analyze how our site is used to help improve it - but only if you\n accept. Learn more in our\n <a class=\"cl-a-text\" href=\"https://castlabs.com/privacy-cookie-policy/\">privacy policy</a\n >.\n </p>\n </slot>\n\n <div class=\"cl-spacing-box cl-spread\">\n <button type=\"button\" class=\"btn btn-sm cl-color-secondary it-cancel\" @click=\"decline()\">\n Decline\n </button>\n <button type=\"button\" class=\"btn btn-sm cl-color-red it-ok\" @click=\"accept()\">\n Accept\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClCookieBanner',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n local: {\n // toggle global cookie for .castlabs.com domain (won’t work in DEV/localhost)\n type: Boolean,\n default: false\n }\n },\n emits: ['consent'],\n data () {\n return {\n fade: false,\n visible: true,\n cookie: 'cl_banner_nok'\n }\n },\n computed: {\n clazz: function (): string {\n return (this.fade ? ` cl-fade-away` : '') + (this.class ? ` ${this.class}` : '')\n }\n },\n created () {\n if (!this.local && !window.location.hostname.match(/castlabs.com$/)) {\n // if not in local mode, banner only works on *.castlabs.com domains\n this.visible = false\n return\n }\n for (const cookie of document?.cookie?.split(/; */) ?? []) {\n const [name, value] = cookie.split('=')\n if (name === this.cookie && ['-mtm', '+mtm'].includes(value ?? 'unknown')) {\n this.visible = false\n return\n }\n }\n },\n methods: {\n accept: function (): void {\n document.cookie = this.cookieString('+mtm')\n this.hide()\n this.$emit('consent')\n },\n decline: function (): void {\n document.cookie = this.cookieString('-mtm')\n this.hide()\n },\n cookieString: function (payload: string): string {\n if (this.local) {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; path=/; SameSite=Lax;` // ~13 months\n } else {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; domain=.castlabs.com; path=/; SameSite=Lax;` // ~13 months\n }\n },\n hide: function (): void {\n this.fade = true\n setTimeout(() => {\n this.visible = false\n }, 500)\n }\n }\n})\n</script>\n","<template>\n <div v-if=\"visible\" :id=\"id\" class=\"card cl-card cl-cookie-banner\" :class=\"clazz\">\n <div class=\"card-body\">\n <slot>\n <p class=\"cl-p-small\">\n For our services to work, we use essential cookies which we control. We'd also like to\n include others to analyze how our site is used to help improve it - but only if you\n accept. Learn more in our\n <a class=\"cl-a-text\" href=\"https://castlabs.com/privacy-cookie-policy/\">privacy policy</a\n >.\n </p>\n </slot>\n\n <div class=\"cl-spacing-box cl-spread\">\n <button type=\"button\" class=\"btn btn-sm cl-color-secondary it-cancel\" @click=\"decline()\">\n Decline\n </button>\n <button type=\"button\" class=\"btn btn-sm cl-color-red it-ok\" @click=\"accept()\">\n Accept\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClCookieBanner',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n local: {\n // toggle global cookie for .castlabs.com domain (won’t work in DEV/localhost)\n type: Boolean,\n default: false\n }\n },\n emits: ['consent'],\n data () {\n return {\n fade: false,\n visible: true,\n cookie: 'cl_banner_nok'\n }\n },\n computed: {\n clazz: function (): string {\n return (this.fade ? ` cl-fade-away` : '') + (this.class ? ` ${this.class}` : '')\n }\n },\n created () {\n if (!this.local && !window.location.hostname.match(/castlabs.com$/)) {\n // if not in local mode, banner only works on *.castlabs.com domains\n this.visible = false\n return\n }\n for (const cookie of document?.cookie?.split(/; */) ?? []) {\n const [name, value] = cookie.split('=')\n if (name === this.cookie && ['-mtm', '+mtm'].includes(value ?? 'unknown')) {\n this.visible = false\n return\n }\n }\n },\n methods: {\n accept: function (): void {\n document.cookie = this.cookieString('+mtm')\n this.hide()\n this.$emit('consent')\n },\n decline: function (): void {\n document.cookie = this.cookieString('-mtm')\n this.hide()\n },\n cookieString: function (payload: string): string {\n if (this.local) {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; path=/; SameSite=Lax;` // ~13 months\n } else {\n return `${this.cookie}=${payload}; max-age=${60 * 60 * 24 * 395}; domain=.castlabs.com; path=/; SameSite=Lax;` // ~13 months\n }\n },\n hide: function (): void {\n this.fade = true\n setTimeout(() => {\n this.visible = false\n }, 500)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClCookieBanner from './template.vue'\n\nClCookieBanner.install = (Vue: App) => {\n Vue.component(ClCookieBanner.name ?? 'ClNoName', ClCookieBanner)\n}\n\nexport default ClCookieBanner\n","<template>\n <span\n v-if=\"unstyled\"\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n class=\"cl-copy\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n <span\n v-else-if=\"code\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <code ref=\"content\">\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </code>\n </span>\n <span\n v-else\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClCopy',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n show: {\n type: String,\n default: undefined\n },\n copy: {\n type: String,\n default: undefined\n },\n underline: {\n type: Boolean,\n default: false\n },\n code: {\n type: Boolean,\n default: false\n },\n unstyled: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n tooltip: function (): string {\n if (this.show && this.contentToCopy() !== this.show) {\n return `${this.contentToCopy()}<br><small>Click-to-copy!</small>`\n }\n return '<small>Click-to-copy!</small>'\n },\n contentToCopy: function (): string {\n return this.copy ?? (this.$refs.content as { textContent: string })?.textContent.trim()\n }\n }\n})\n</script>\n","<template>\n <span\n v-if=\"unstyled\"\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n class=\"cl-copy\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n <span\n v-else-if=\"code\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <code ref=\"content\">\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </code>\n </span>\n <span\n v-else\n ref=\"content\"\n v-tooltip:top=\"tooltip\"\n v-clipboard=\"contentToCopy\"\n :class=\"underline ? 'cl-copy cl-copy-text' : 'cl-copy cl-copy-transparent'\"\n >\n <template v-if=\"show\">{{ show }}</template>\n <template v-else-if=\"$slots.default\"><slot /></template>\n <template v-else>{{ copy ?? '?' }}</template>\n </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClCopy',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n show: {\n type: String,\n default: undefined\n },\n copy: {\n type: String,\n default: undefined\n },\n underline: {\n type: Boolean,\n default: false\n },\n code: {\n type: Boolean,\n default: false\n },\n unstyled: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n tooltip: function (): string {\n if (this.show && this.contentToCopy() !== this.show) {\n return `${this.contentToCopy()}<br><small>Click-to-copy!</small>`\n }\n return '<small>Click-to-copy!</small>'\n },\n contentToCopy: function (): string {\n return this.copy ?? (this.$refs.content as { textContent: string })?.textContent.trim()\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClCopy from './template.vue'\n\nClCopy.install = (Vue: App) => {\n Vue.component(ClCopy.name ?? 'ClNoName', ClCopy)\n}\n\nexport default ClCopy\n","<template>\n <code :id=\"id\" :class=\"clazz\">{{ clFormatCardNumber(number) }}</code\n >,\n {{ validText }}\n <code>{{ expires }}</code>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClCreditcardNumber',\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n number: {\n type: String,\n default: '0000000000000000'\n },\n expires: {\n type: String,\n default: 'MM/YYYY'\n },\n expired: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n validText: function (): string {\n return this.expired ? 'expired' : 'valid until'\n }\n },\n methods: {\n clFormatCardNumber: CL.clFormatCardNumber\n }\n})\n</script>\n","<template>\n <code :id=\"id\" :class=\"clazz\">{{ clFormatCardNumber(number) }}</code\n >,\n {{ validText }}\n <code>{{ expires }}</code>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClCreditcardNumber',\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n number: {\n type: String,\n default: '0000000000000000'\n },\n expires: {\n type: String,\n default: 'MM/YYYY'\n },\n expired: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n validText: function (): string {\n return this.expired ? 'expired' : 'valid until'\n }\n },\n methods: {\n clFormatCardNumber: CL.clFormatCardNumber\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClCreditcardNumber from './template.vue'\n\nClCreditcardNumber.install = (Vue: App) => {\n Vue.component(ClCreditcardNumber.name ?? 'ClNoName', ClCreditcardNumber)\n}\n\nexport default ClCreditcardNumber\n","<template>\n <div\n class=\"cl-spacing-small\"\n :class=\"dragging ? 'cl-dragging' : ''\"\n @dragover=\"onDrag(true)\"\n @dragleave=\"onDrag(false)\"\n @drop.prevent=\"onDrop\"\n >\n <input\n v-if=\"camera\"\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n accept=\"image/*\"\n class=\"cl-dropzone-file\"\n capture=\"environment\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <input\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"multiple\"\n class=\"cl-dropzone-file\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <div v-if=\"camera\" class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-camera\" aria-hidden=\"true\" />Use your <a href=\"#\" @click.prevent>camera</a>\n to take a picture\n {{ why }}.\n </div>\n <div v-else class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-file-upload\" aria-hidden=\"true\" />Drop or\n <a href=\"#\" @click.prevent>browse</a>\n {{ what }}\n {{ why }}.\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nfunction preventDefaults (event: Event): void {\n event.preventDefault()\n}\n\nexport default defineComponent({\n name: 'ClDropzone',\n props: {\n what: {\n type: String,\n default: 'a file'\n },\n why: {\n type: String,\n default: 'to add'\n },\n accept: {\n type: String,\n default: undefined\n },\n camera: {\n type: Boolean,\n default: false\n },\n emitContent: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n }\n },\n emits: ['file', 'content', 'files', 'contents'],\n data () {\n return {\n $uid: 0, // to get around type error of plugin\n dragging: false\n }\n },\n mounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.addEventListener(eventName, preventDefaults)\n })\n },\n unmounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.removeEventListener(eventName, preventDefaults)\n })\n },\n methods: {\n browse: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n if (element && document.createEvent) {\n const event = document.createEvent('MouseEvents')\n event.initEvent('click', true, false)\n element.dispatchEvent(event)\n }\n },\n browsed: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n const files = element.files ?? []\n if (files.length > 0) {\n if (this.multiple) {\n this.loadFiles(Array.from(files))\n } else {\n this.loadFile(files[0] as File)\n }\n }\n },\n mock: function (file: File): void {\n // to be triggered in UI tests only\n this.$emit('file', file)\n },\n loadFile: function (file: File): void {\n const emit = this.$emit\n emit('file', file)\n if (this.emitContent) {\n const reader = new FileReader()\n reader.onload = function (event) {\n emit('content', event.target?.result)\n }\n reader.readAsText(file)\n }\n },\n loadFiles: function (files: File[]): void {\n const emit = this.$emit\n emit('files', files)\n if (this.emitContent) {\n const reads = files.map(\n file =>\n new Promise<string | ArrayBuffer | null>(resolve => {\n const reader = new FileReader()\n reader.onload = event => resolve(event.target?.result ?? null)\n reader.readAsText(file)\n })\n )\n Promise.all(reads).then(contents => emit('contents', contents))\n }\n },\n onDrop: function (event: DragEvent): void {\n if (event.dataTransfer) {\n if (this.multiple) {\n this.loadFiles(Array.from(event.dataTransfer.files))\n } else {\n this.loadFile(event.dataTransfer.files[0] as File)\n }\n }\n this.dragging = false\n },\n onDrag: function (over: boolean): void {\n this.dragging = over\n }\n }\n})\n</script>\n","<template>\n <div\n class=\"cl-spacing-small\"\n :class=\"dragging ? 'cl-dragging' : ''\"\n @dragover=\"onDrag(true)\"\n @dragleave=\"onDrag(false)\"\n @drop.prevent=\"onDrop\"\n >\n <input\n v-if=\"camera\"\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n accept=\"image/*\"\n class=\"cl-dropzone-file\"\n capture=\"environment\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <input\n :id=\"`cl-dropzone-file-${$uid}`\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"multiple\"\n class=\"cl-dropzone-file\"\n @change=\"browsed\"\n tabindex=\"-1\"\n />\n <div v-if=\"camera\" class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-camera\" aria-hidden=\"true\" />Use your <a href=\"#\" @click.prevent>camera</a>\n to take a picture\n {{ why }}.\n </div>\n <div v-else class=\"cl-dropzone\" @click=\"browse()\">\n <i class=\"fas fa-file-upload\" aria-hidden=\"true\" />Drop or\n <a href=\"#\" @click.prevent>browse</a>\n {{ what }}\n {{ why }}.\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nfunction preventDefaults (event: Event): void {\n event.preventDefault()\n}\n\nexport default defineComponent({\n name: 'ClDropzone',\n props: {\n what: {\n type: String,\n default: 'a file'\n },\n why: {\n type: String,\n default: 'to add'\n },\n accept: {\n type: String,\n default: undefined\n },\n camera: {\n type: Boolean,\n default: false\n },\n emitContent: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n }\n },\n emits: ['file', 'content', 'files', 'contents'],\n data () {\n return {\n $uid: 0, // to get around type error of plugin\n dragging: false\n }\n },\n mounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.addEventListener(eventName, preventDefaults)\n })\n },\n unmounted () {\n ;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n document.body.removeEventListener(eventName, preventDefaults)\n })\n },\n methods: {\n browse: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n if (element && document.createEvent) {\n const event = document.createEvent('MouseEvents')\n event.initEvent('click', true, false)\n element.dispatchEvent(event)\n }\n },\n browsed: function (): void {\n const element = document.getElementById(`cl-dropzone-file-${this.$uid}`) as HTMLInputElement\n const files = element.files ?? []\n if (files.length > 0) {\n if (this.multiple) {\n this.loadFiles(Array.from(files))\n } else {\n this.loadFile(files[0] as File)\n }\n }\n },\n mock: function (file: File): void {\n // to be triggered in UI tests only\n this.$emit('file', file)\n },\n loadFile: function (file: File): void {\n const emit = this.$emit\n emit('file', file)\n if (this.emitContent) {\n const reader = new FileReader()\n reader.onload = function (event) {\n emit('content', event.target?.result)\n }\n reader.readAsText(file)\n }\n },\n loadFiles: function (files: File[]): void {\n const emit = this.$emit\n emit('files', files)\n if (this.emitContent) {\n const reads = files.map(\n file =>\n new Promise<string | ArrayBuffer | null>(resolve => {\n const reader = new FileReader()\n reader.onload = event => resolve(event.target?.result ?? null)\n reader.readAsText(file)\n })\n )\n Promise.all(reads).then(contents => emit('contents', contents))\n }\n },\n onDrop: function (event: DragEvent): void {\n if (event.dataTransfer) {\n if (this.multiple) {\n this.loadFiles(Array.from(event.dataTransfer.files))\n } else {\n this.loadFile(event.dataTransfer.files[0] as File)\n }\n }\n this.dragging = false\n },\n onDrag: function (over: boolean): void {\n this.dragging = over\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClDropzone from './template.vue'\n\nClDropzone.install = (Vue: App) => {\n Vue.component(ClDropzone.name ?? 'ClNoName', ClDropzone)\n}\n\nexport default ClDropzone\n","<template>\n <label v-if=\"label\" :for=\"$uid\" class=\"form-label\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <textarea\n v-if=\"type === 'textarea'\"\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <select\n v-else-if=\"type === 'select'\"\n :id=\"$uid\"\n v-model=\"modelValue\"\n class=\"form-select\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :required=\"required\"\n v-bind=\"$attrs\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n >\n <slot />\n </select>\n <input\n v-else\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :min=\"min\"\n :max=\"max\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :step=\"step\"\n :pattern=\"pattern\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :type=\"['number'].includes(type) ? 'text' : type\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <label v-if=\"type === 'file'\" :id=\"`${$uid}-companion`\" :for=\"$uid\" class=\"cl-file-companion\">{{\n filePlaceholder\n }}</label>\n <template v-if=\"!nofeedback\">\n <p class=\"invalid-feedback\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\">\n {{ help }}\n </p>\n <p v-else class=\"valid-feedback valid-feedback-none\" />\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClField',\n inheritAttrs: false,\n props: {\n value: {\n type: String,\n default: undefined\n },\n type: {\n type: String,\n default: 'text'\n },\n label: {\n type: String,\n default: undefined\n },\n placeholder: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n nofeedback: {\n type: Boolean,\n default: false\n },\n required: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n },\n autotrim: {\n type: Boolean,\n default: false\n },\n prevalidate: {\n type: Boolean,\n default: false\n },\n minlength: {\n type: String,\n default: undefined\n },\n maxlength: {\n type: String,\n default: undefined\n },\n min: {\n type: String,\n default: undefined\n },\n max: {\n type: String,\n default: undefined\n },\n step: {\n type: String,\n default: '1'\n },\n pattern: {\n type: String,\n default: undefined\n },\n float: {\n type: Boolean,\n default: false\n }\n },\n emits: ['valid', 'invalid', 'changed', 'update:modelValue'],\n data () {\n return {\n valid: true,\n modelValue: this.value ?? '',\n invalidMessage: this.error ?? 'Input invalid.',\n filePlaceholder: this.placeholder ?? 'Please select ...'\n }\n },\n computed: {\n clazz: function (): string {\n if (this.type === 'file') {\n return this.class + ' cl-file' + (!this.valid ? ' invalid' : '')\n } else {\n return this.class + ' form-control' + (!this.valid ? ' invalid' : '')\n }\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n mounted: function () {\n if (this.prevalidate) this.validate()\n },\n methods: {\n runAutotrim: function (): void {\n if (this.autotrim || ['number'].includes(this.type)) {\n const input = this.$refs.input as HTMLInputElement\n input.value = input.value.trim()\n this.modelValue = input.value\n }\n },\n focus: function (): void {\n clRefFocus(this.$refs.input)\n },\n validate: function (trim = false): void {\n this.valid = true\n if (trim) this.runAutotrim()\n if (this.type === 'file' && this.modelValue !== '') {\n this.filePlaceholder = this.modelValue.replace(/.*[/\\\\]/, '')\n }\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n this.setInvalid('This field may not be blank.')\n } else {\n switch (this.type) {\n case 'number':\n this.validateNumber()\n break\n case 'email':\n this.validateEMail()\n break\n default:\n this.validateText()\n }\n }\n if (this.valid) this.setValid(this.modelValue)\n },\n validateSilent: function (): boolean {\n // variant of validate() that does not modify the field/internal data but\n // instead validates to true/false\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n return false\n } else {\n switch (this.type) {\n case 'number':\n if (!this.validateNumber(true)) return false\n break\n case 'email':\n if (!this.validateEMail(true)) return false\n break\n default:\n if (!this.validateText(true)) return false\n }\n }\n return true\n },\n validateText: function (silent = false): boolean {\n const minlength = Number(this.minlength)\n const maxlength = Number(this.maxlength)\n if (this.minlength && (this.modelValue?.length ?? 0) < minlength) {\n if (silent) return false\n this.setInvalid(\n this.error ??\n `Please enter at least ${minlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.maxlength && (this.modelValue?.length ?? 0) > maxlength) {\n if (silent) return false\n this.setInvalid(\n this.error ?? `Please enter at most ${maxlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.pattern && !new RegExp(this.pattern, 'g').test(this.modelValue)) {\n if (silent) return false\n this.setInvalid(this.error)\n return false\n }\n return true\n },\n validateNumber: function (silent = false): boolean {\n const modelValue = this.modelValue.trim()\n const val = parseFloat(modelValue.trim())\n if (this.float) {\n if (!/^-?[0-9]*\\.?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n } else {\n // integer\n if (!/^-?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n if (val.toString() !== modelValue) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n }\n if (this.min !== undefined && this.max !== undefined) {\n if (val < parseFloat(this.min) || val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number between ${this.min} and ${this.max}.`)\n return false\n }\n } else if (this.min !== undefined) {\n if (val < parseFloat(this.min)) {\n if (silent) return false\n this.setInvalid(`Please enter a number >= ${this.min}.`)\n return false\n }\n } else if (this.max !== undefined) {\n if (val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number <= ${this.max}.`)\n return false\n }\n }\n return true\n },\n validateEMail: function (silent = false): boolean {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+[^\\s@.]$/.test(this.modelValue)) {\n if (silent) return false\n this.setInvalid('Please enter a valid email address.')\n return false\n }\n return true\n },\n setValid: function (value = ''): void {\n this.valid = true\n this.modelValue = value\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('valid', this.help ?? '')\n this.$emit('changed', this.modelValue)\n },\n setInvalid: function (message?: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('invalid', this.invalidMessage)\n this.$emit('changed', this.modelValue)\n },\n plus: function (): void {\n const target = parseFloat(this.modelValue) + parseFloat(this.step)\n this.set(target)\n },\n minus: function (): void {\n const target = parseFloat(this.modelValue) - parseFloat(this.step)\n this.set(target)\n },\n set: function (target: number): void {\n switch (this.type) {\n case 'range':\n case 'number':\n if (this.min !== undefined && target < parseFloat(this.min)) {\n this.setValid(this.min)\n } else if (this.max !== undefined && target > parseFloat(this.max)) {\n this.setValid(this.max)\n } else {\n this.setValid(String(target))\n }\n break\n }\n }\n }\n})\n</script>\n","<template>\n <label v-if=\"label\" :for=\"$uid\" class=\"form-label\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <textarea\n v-if=\"type === 'textarea'\"\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <select\n v-else-if=\"type === 'select'\"\n :id=\"$uid\"\n v-model=\"modelValue\"\n class=\"form-select\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :required=\"required\"\n v-bind=\"$attrs\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n >\n <slot />\n </select>\n <input\n v-else\n :id=\"$uid\"\n v-bind=\"$attrs\"\n ref=\"input\"\n v-model=\"modelValue\"\n :autofocus=\"autofocus\"\n :class=\"clazz\"\n :disabled=\"disabled\"\n :min=\"min\"\n :max=\"max\"\n :maxlength=\"maxlength\"\n :minlength=\"minlength\"\n :step=\"step\"\n :pattern=\"pattern\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :type=\"['number'].includes(type) ? 'text' : type\"\n @blur=\"validate(true)\"\n @change=\"validate()\"\n @input=\"validate()\"\n />\n <label v-if=\"type === 'file'\" :id=\"`${$uid}-companion`\" :for=\"$uid\" class=\"cl-file-companion\">{{\n filePlaceholder\n }}</label>\n <template v-if=\"!nofeedback\">\n <p class=\"invalid-feedback\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\">\n {{ help }}\n </p>\n <p v-else class=\"valid-feedback valid-feedback-none\" />\n </template>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClField',\n inheritAttrs: false,\n props: {\n value: {\n type: String,\n default: undefined\n },\n type: {\n type: String,\n default: 'text'\n },\n label: {\n type: String,\n default: undefined\n },\n placeholder: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n nofeedback: {\n type: Boolean,\n default: false\n },\n required: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n },\n autotrim: {\n type: Boolean,\n default: false\n },\n prevalidate: {\n type: Boolean,\n default: false\n },\n minlength: {\n type: String,\n default: undefined\n },\n maxlength: {\n type: String,\n default: undefined\n },\n min: {\n type: String,\n default: undefined\n },\n max: {\n type: String,\n default: undefined\n },\n step: {\n type: String,\n default: '1'\n },\n pattern: {\n type: String,\n default: undefined\n },\n float: {\n type: Boolean,\n default: false\n }\n },\n emits: ['valid', 'invalid', 'changed', 'update:modelValue'],\n data () {\n return {\n valid: true,\n modelValue: this.value ?? '',\n invalidMessage: this.error ?? 'Input invalid.',\n filePlaceholder: this.placeholder ?? 'Please select ...'\n }\n },\n computed: {\n clazz: function (): string {\n if (this.type === 'file') {\n return this.class + ' cl-file' + (!this.valid ? ' invalid' : '')\n } else {\n return this.class + ' form-control' + (!this.valid ? ' invalid' : '')\n }\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n mounted: function () {\n if (this.prevalidate) this.validate()\n },\n methods: {\n runAutotrim: function (): void {\n if (this.autotrim || ['number'].includes(this.type)) {\n const input = this.$refs.input as HTMLInputElement\n input.value = input.value.trim()\n this.modelValue = input.value\n }\n },\n focus: function (): void {\n clRefFocus(this.$refs.input)\n },\n validate: function (trim = false): void {\n this.valid = true\n if (trim) this.runAutotrim()\n if (this.type === 'file' && this.modelValue !== '') {\n this.filePlaceholder = this.modelValue.replace(/.*[/\\\\]/, '')\n }\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n this.setInvalid('This field may not be blank.')\n } else {\n switch (this.type) {\n case 'number':\n this.validateNumber()\n break\n case 'email':\n this.validateEMail()\n break\n default:\n this.validateText()\n }\n }\n if (this.valid) this.setValid(this.modelValue)\n },\n validateSilent: function (): boolean {\n // variant of validate() that does not modify the field/internal data but\n // instead validates to true/false\n if (this.required && (this.modelValue?.length ?? 0) <= 0) {\n return false\n } else {\n switch (this.type) {\n case 'number':\n if (!this.validateNumber(true)) return false\n break\n case 'email':\n if (!this.validateEMail(true)) return false\n break\n default:\n if (!this.validateText(true)) return false\n }\n }\n return true\n },\n validateText: function (silent = false): boolean {\n const minlength = Number(this.minlength)\n const maxlength = Number(this.maxlength)\n if (this.minlength && (this.modelValue?.length ?? 0) < minlength) {\n if (silent) return false\n this.setInvalid(\n this.error ??\n `Please enter at least ${minlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.maxlength && (this.modelValue?.length ?? 0) > maxlength) {\n if (silent) return false\n this.setInvalid(\n this.error ?? `Please enter at most ${maxlength} character` + (minlength > 1 ? 's.' : '.')\n )\n return false\n }\n if (this.pattern && !new RegExp(this.pattern, 'g').test(this.modelValue)) {\n if (silent) return false\n this.setInvalid(this.error)\n return false\n }\n return true\n },\n validateNumber: function (silent = false): boolean {\n const modelValue = this.modelValue.trim()\n const val = parseFloat(modelValue.trim())\n if (this.float) {\n if (!/^-?[0-9]*\\.?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n } else {\n // integer\n if (!/^-?[0-9]*$/.test(modelValue.trim())) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n if (val.toString() !== modelValue) {\n if (silent) return false\n this.setInvalid('Please enter a number.')\n return false\n }\n }\n if (this.min !== undefined && this.max !== undefined) {\n if (val < parseFloat(this.min) || val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number between ${this.min} and ${this.max}.`)\n return false\n }\n } else if (this.min !== undefined) {\n if (val < parseFloat(this.min)) {\n if (silent) return false\n this.setInvalid(`Please enter a number >= ${this.min}.`)\n return false\n }\n } else if (this.max !== undefined) {\n if (val > parseFloat(this.max)) {\n if (silent) return false\n this.setInvalid(`Please enter a number <= ${this.max}.`)\n return false\n }\n }\n return true\n },\n validateEMail: function (silent = false): boolean {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+[^\\s@.]$/.test(this.modelValue)) {\n if (silent) return false\n this.setInvalid('Please enter a valid email address.')\n return false\n }\n return true\n },\n setValid: function (value = ''): void {\n this.valid = true\n this.modelValue = value\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('valid', this.help ?? '')\n this.$emit('changed', this.modelValue)\n },\n setInvalid: function (message?: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('invalid', this.invalidMessage)\n this.$emit('changed', this.modelValue)\n },\n plus: function (): void {\n const target = parseFloat(this.modelValue) + parseFloat(this.step)\n this.set(target)\n },\n minus: function (): void {\n const target = parseFloat(this.modelValue) - parseFloat(this.step)\n this.set(target)\n },\n set: function (target: number): void {\n switch (this.type) {\n case 'range':\n case 'number':\n if (this.min !== undefined && target < parseFloat(this.min)) {\n this.setValid(this.min)\n } else if (this.max !== undefined && target > parseFloat(this.max)) {\n this.setValid(this.max)\n } else {\n this.setValid(String(target))\n }\n break\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClField from './template.vue'\n\nClField.install = (Vue: App) => {\n Vue.component(ClField.name ?? 'ClNoName', ClField)\n}\n\nexport default ClField\n","<template>\n <div :class=\"clazz\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n :indeterminate=\"indeterminate\"\n :autofocus=\"autofocus\"\n v-bind=\"$attrs\"\n @change=\"$emit('update:modelValue', modelValue)\"\n />\n <label class=\"form-check-label\" :for=\"id ?? $uid\">\n <slot />\n </label>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClFieldCheck',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n value: {\n type: Boolean,\n default: false\n },\n label: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n inline: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n indeterminate: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n modelValue: this.value\n }\n },\n computed: {\n clazz: function (): string {\n return `form-check${this.inline ? ' form-check-inline' : ''} ${this.class}`\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n methods: {\n check: function (value = false) {\n this.modelValue = value\n ;(this.$refs.input as HTMLInputElement).checked = value\n },\n focus: function () {\n clRefFocus(this.$refs.input)\n }\n }\n})\n</script>\n","<template>\n <div :class=\"clazz\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n :indeterminate=\"indeterminate\"\n :autofocus=\"autofocus\"\n v-bind=\"$attrs\"\n @change=\"$emit('update:modelValue', modelValue)\"\n />\n <label class=\"form-check-label\" :for=\"id ?? $uid\">\n <slot />\n </label>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clRefFocus } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClFieldCheck',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n value: {\n type: Boolean,\n default: false\n },\n label: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n inline: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n indeterminate: {\n type: Boolean,\n default: false\n },\n autofocus: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n modelValue: this.value\n }\n },\n computed: {\n clazz: function (): string {\n return `form-check${this.inline ? ' form-check-inline' : ''} ${this.class}`\n }\n },\n watch: {\n value (to) {\n if (this.modelValue !== to) {\n this.modelValue = to\n }\n }\n },\n methods: {\n check: function (value = false) {\n this.modelValue = value\n ;(this.$refs.input as HTMLInputElement).checked = value\n },\n focus: function () {\n clRefFocus(this.$refs.input)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClFieldCheck from './template.vue'\n\nClFieldCheck.install = (Vue: App) => {\n Vue.component(ClFieldCheck.name ?? 'ClNoName', ClFieldCheck)\n}\n\nexport default ClFieldCheck\n","<template>\n <label v-if=\"label\" class=\"form-label\" :class=\"{ disabled: disabled }\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <div :class=\"`input-group${clazz}`\" :id=\"id\">\n <slot />\n </div>\n <p class=\"invalid-feedback\" :class=\"{ disabled: disabled }\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\" :class=\"{ disabled: disabled }\">\n {{ help }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClFieldGroup',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n label: {\n type: String,\n default: undefined\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n required: {\n type: Boolean,\n default: false\n },\n noWrap: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: true,\n invalidMessage: this.error ?? 'Input invalid.'\n }\n },\n computed: {\n clazz: function (): string {\n return (\n (this.valid ? '' : ' invalid') +\n (this.class ? ` ${this.class}` : '') +\n (this.noWrap ? ' cl-no-wrap' : '')\n )\n }\n },\n methods: {\n setValid: function (): void {\n this.valid = true\n this.invalidMessage = 'Input invalid.'\n },\n setInvalid: function (message: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n }\n }\n})\n</script>\n","<template>\n <label v-if=\"label\" class=\"form-label\" :class=\"{ disabled: disabled }\"\n >{{ label }}<span v-if=\"required\" class=\"required\">*</span></label\n >\n\n <div :class=\"`input-group${clazz}`\" :id=\"id\">\n <slot />\n </div>\n <p class=\"invalid-feedback\" :class=\"{ disabled: disabled }\">\n {{ invalidMessage }}\n </p>\n <p v-if=\"help\" class=\"valid-feedback\" :class=\"{ disabled: disabled }\">\n {{ help }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClFieldGroup',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n label: {\n type: String,\n default: undefined\n },\n help: {\n type: String,\n default: undefined\n },\n error: {\n type: String,\n default: undefined\n },\n required: {\n type: Boolean,\n default: false\n },\n noWrap: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: true,\n invalidMessage: this.error ?? 'Input invalid.'\n }\n },\n computed: {\n clazz: function (): string {\n return (\n (this.valid ? '' : ' invalid') +\n (this.class ? ` ${this.class}` : '') +\n (this.noWrap ? ' cl-no-wrap' : '')\n )\n }\n },\n methods: {\n setValid: function (): void {\n this.valid = true\n this.invalidMessage = 'Input invalid.'\n },\n setInvalid: function (message: string): void {\n this.valid = false\n this.invalidMessage = message ?? 'Input invalid.'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClFieldGroup from './template.vue'\n\nClFieldGroup.install = (Vue: App) => {\n Vue.component(ClFieldGroup.name ?? 'ClNoName', ClFieldGroup)\n}\n\nexport default ClFieldGroup\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClHashtag',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-hashtag '\n if (!this.primary && !this.secondary) {\n if (!this.class.includes('cl-color')) {\n c += ' cl-color-ash'\n }\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClHashtag',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-hashtag '\n if (!this.primary && !this.secondary) {\n if (!this.class.includes('cl-color')) {\n c += ' cl-color-ash'\n }\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClHashtag from './template.vue'\n\nClHashtag.install = (Vue: App) => {\n Vue.component(ClHashtag.name ?? 'ClNoName', ClHashtag)\n}\n\nexport default ClHashtag\n","<template>\n <div class=\"container cl-container-iconotron\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <img :src=\"src\" alt=\"\" />\n </div>\n <div class=\"col-12 col-md-9\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClIconotron',\n props: {\n src: {\n type: String,\n default: undefined\n }\n }\n})\n</script>\n","<template>\n <div class=\"container cl-container-iconotron\">\n <div class=\"row\">\n <div class=\"col-12 col-md-3\">\n <img :src=\"src\" alt=\"\" />\n </div>\n <div class=\"col-12 col-md-9\">\n <slot />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClIconotron',\n props: {\n src: {\n type: String,\n default: undefined\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClIconotron from './template.vue'\n\nClIconotron.install = (Vue: App) => {\n Vue.component(ClIconotron.name ?? 'ClNoName', ClIconotron)\n}\n\nexport default ClIconotron\n","<template>\n <i v-if=\"bottom\" v-tooltip:bottom=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"left\" v-tooltip:left=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"right\" v-tooltip:right=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else v-tooltip:top=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClInfo',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n top: {\n type: Boolean,\n default: true\n },\n info: {\n type: String,\n default: 'Tooltip'\n },\n faded: {\n type: Boolean,\n default: true\n },\n icon: {\n type: String,\n default: 'far fa-question-circle'\n }\n },\n computed: {\n classes: function (): string {\n return this.icon + (this.faded ? ' cl-faded' : '')\n }\n }\n})\n</script>\n","<template>\n <i v-if=\"bottom\" v-tooltip:bottom=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"left\" v-tooltip:left=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else-if=\"right\" v-tooltip:right=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n <i v-else v-tooltip:top=\"info\" :class=\"classes\" aria-hidden=\"true\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClInfo',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n bottom: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n top: {\n type: Boolean,\n default: true\n },\n info: {\n type: String,\n default: 'Tooltip'\n },\n faded: {\n type: Boolean,\n default: true\n },\n icon: {\n type: String,\n default: 'far fa-question-circle'\n }\n },\n computed: {\n classes: function (): string {\n return this.icon + (this.faded ? ' cl-faded' : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClInfo from './template.vue'\n\nClInfo.install = (Vue: App) => {\n Vue.component(ClInfo.name ?? 'ClNoName', ClInfo)\n}\n\nexport default ClInfo\n","<template>\n <a :class=\"{ 'cl-a-external': !noicon }\" target=\"_blank\" rel=\"noopener noreferrer\"><slot /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClLinkExternal',\n props: {\n noicon: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","<template>\n <a :class=\"{ 'cl-a-external': !noicon }\" target=\"_blank\" rel=\"noopener noreferrer\"><slot /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClLinkExternal',\n props: {\n noicon: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClLinkExternal from './template.vue'\n\nClLinkExternal.install = (Vue: App) => {\n Vue.component(ClLinkExternal.name ?? 'ClNoName', ClLinkExternal)\n}\n\nexport default ClLinkExternal\n","<template>\n <template v-if=\"paragraphs <= 0\">\n {{ lorem(0) }}\n </template>\n <p v-for=\"index in parseInt(paragraphs)\" v-else :key=\"index\">\n {{ lorem(index) }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nconst LOREM1 = `\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n incididunt ut labore et dolore magna aliqua. Sed ullamcorper morbi tincidunt\n ornare massa eget egestas purus viverra. Faucibus in ornare quam viverra orci\n sagittis eu volutpat. Mi sit amet mauris commodo quis imperdiet massa tincidunt\n nunc. Penatibus et magnis dis parturient montes nascetur ridiculus mus mauris.\n Volutpat odio facilisis mauris sit amet massa vitae tortor. Quis risus sed\n vulputate odio ut enim. Adipiscing diam donec adipiscing tristique risus. Nunc\n vel risus commodo viverra maecenas accumsan. Arcu cursus euismod quis viverra\n nibh cras pulvinar mattis nunc. Sit amet massa vitae tortor condimentum lacinia\n quis vel. Sit amet nulla facilisi morbi tempus iaculis urna id volutpat. Dictum\n fusce ut placerat orci nulla pellentesque dignissim enim. Non odio euismod\n lacinia at.`\n\nconst LOREM2 = `\n Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Feugiat\n pretium nibh ipsum consequat. Vulputate mi sit amet mauris commodo quis.\n Elementum curabitur vitae nunc sed velit dignissim sodales ut eu. Risus\n pretium quam vulputate dignissim suspendisse in. Purus non enim praesent\n elementum. Aenean pharetra magna ac placerat vestibulum lectus mauris ultrices.\n Mi in nulla posuere sollicitudin aliquam ultrices. Erat pellentesque adipiscing\n commodo elit at imperdiet dui. Volutpat lacus laoreet non curabitur. Tellus in\n metus vulputate eu scelerisque felis. Volutpat consequat mauris nunc congue nisi.\n Congue eu consequat ac felis donec. Aliquam etiam erat velit scelerisque in\n dictum non. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies.\n Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Sit amet\n justo donec enim diam.`\n\nexport default defineComponent({\n name: 'ClLorem',\n props: {\n words: {\n type: Number,\n default: 10\n },\n paragraphs: {\n type: Number,\n default: 0\n }\n },\n methods: {\n lorem (index: number): string {\n const src = index % 2 ? LOREM2 : LOREM1\n return (\n src.trim().replace(/\\s+/g, ' ').split(' ').splice(0, this.words).join(' ') + '.'\n ).replace(/\\.+/g, '.')\n }\n }\n})\n</script>\n","<template>\n <template v-if=\"paragraphs <= 0\">\n {{ lorem(0) }}\n </template>\n <p v-for=\"index in parseInt(paragraphs)\" v-else :key=\"index\">\n {{ lorem(index) }}\n </p>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nconst LOREM1 = `\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\n incididunt ut labore et dolore magna aliqua. Sed ullamcorper morbi tincidunt\n ornare massa eget egestas purus viverra. Faucibus in ornare quam viverra orci\n sagittis eu volutpat. Mi sit amet mauris commodo quis imperdiet massa tincidunt\n nunc. Penatibus et magnis dis parturient montes nascetur ridiculus mus mauris.\n Volutpat odio facilisis mauris sit amet massa vitae tortor. Quis risus sed\n vulputate odio ut enim. Adipiscing diam donec adipiscing tristique risus. Nunc\n vel risus commodo viverra maecenas accumsan. Arcu cursus euismod quis viverra\n nibh cras pulvinar mattis nunc. Sit amet massa vitae tortor condimentum lacinia\n quis vel. Sit amet nulla facilisi morbi tempus iaculis urna id volutpat. Dictum\n fusce ut placerat orci nulla pellentesque dignissim enim. Non odio euismod\n lacinia at.`\n\nconst LOREM2 = `\n Tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra. Feugiat\n pretium nibh ipsum consequat. Vulputate mi sit amet mauris commodo quis.\n Elementum curabitur vitae nunc sed velit dignissim sodales ut eu. Risus\n pretium quam vulputate dignissim suspendisse in. Purus non enim praesent\n elementum. Aenean pharetra magna ac placerat vestibulum lectus mauris ultrices.\n Mi in nulla posuere sollicitudin aliquam ultrices. Erat pellentesque adipiscing\n commodo elit at imperdiet dui. Volutpat lacus laoreet non curabitur. Tellus in\n metus vulputate eu scelerisque felis. Volutpat consequat mauris nunc congue nisi.\n Congue eu consequat ac felis donec. Aliquam etiam erat velit scelerisque in\n dictum non. Dis parturient montes nascetur ridiculus mus mauris vitae ultricies.\n Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Sit amet\n justo donec enim diam.`\n\nexport default defineComponent({\n name: 'ClLorem',\n props: {\n words: {\n type: Number,\n default: 10\n },\n paragraphs: {\n type: Number,\n default: 0\n }\n },\n methods: {\n lorem (index: number): string {\n const src = index % 2 ? LOREM2 : LOREM1\n return (\n src.trim().replace(/\\s+/g, ' ').split(' ').splice(0, this.words).join(' ') + '.'\n ).replace(/\\.+/g, '.')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClLorem from './template.vue'\n\nClLorem.install = (Vue: App) => {\n Vue.component(ClLorem.name ?? 'ClNoName', ClLorem)\n}\n\nexport default ClLorem\n","<template>\n <a class=\"cl-a-email\" :href=\"`mailto:${to}`\">{{ to }}</a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClMailto',\n props: {\n to: {\n type: String,\n default: 'office@castlabs.com'\n }\n }\n})\n</script>\n","<template>\n <a class=\"cl-a-email\" :href=\"`mailto:${to}`\">{{ to }}</a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClMailto',\n props: {\n to: {\n type: String,\n default: 'office@castlabs.com'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClMailto from './template.vue'\n\nClMailto.install = (Vue: App) => {\n Vue.component(ClMailto.name ?? 'ClNoName', ClMailto)\n}\n\nexport default ClMailto\n","<template>\n <a\n :class=\"classes\"\n :to=\"JSON.stringify(to)\"\n :name=\"to.name\"\n :aid=\"to.params?.aid\"\n :bid=\"to.params?.bid\"\n :cid=\"to.params?.cid\"\n :did=\"to.params?.did\"\n :eid=\"to.params?.eid\"\n :fid=\"to.params?.fid\"\n :gid=\"to.params?.gid\"\n :hid=\"to.params?.hid\"\n :iid=\"to.params?.iid\"\n :jid=\"to.params?.jid\"\n :kid=\"to.params?.kid\"\n :lid=\"to.params?.lid\"\n :mid=\"to.params?.mid\"\n :nid=\"to.params?.nid\"\n :oid=\"to.params?.oid\"\n :pid=\"to.params?.pid\"\n :qid=\"to.params?.qid\"\n :rid=\"to.params?.rid\"\n :sid=\"to.params?.sid\"\n :tid=\"to.params?.tid\"\n :uid=\"to.params?.uid\"\n :vid=\"to.params?.vid\"\n :wid=\"to.params?.wid\"\n :xid=\"to.params?.xid\"\n :yid=\"to.params?.yid\"\n :zid=\"to.params?.zid\"\n @click=\"push()\"\n ><slot\n /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n props: {\n to: {\n type: undefined as PropType<any> | undefined, // eslint-disable-line @typescript-eslint/no-explicit-any\n default: () => ({})\n },\n class: {\n type: String,\n default: ''\n }\n },\n computed: {\n classes: function (): string {\n return this.class\n }\n },\n methods: {\n push: function (): void {\n ;(this as any).$router.push(this.to) // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n }\n})\n</script>\n","<template>\n <a\n :class=\"classes\"\n :to=\"JSON.stringify(to)\"\n :name=\"to.name\"\n :aid=\"to.params?.aid\"\n :bid=\"to.params?.bid\"\n :cid=\"to.params?.cid\"\n :did=\"to.params?.did\"\n :eid=\"to.params?.eid\"\n :fid=\"to.params?.fid\"\n :gid=\"to.params?.gid\"\n :hid=\"to.params?.hid\"\n :iid=\"to.params?.iid\"\n :jid=\"to.params?.jid\"\n :kid=\"to.params?.kid\"\n :lid=\"to.params?.lid\"\n :mid=\"to.params?.mid\"\n :nid=\"to.params?.nid\"\n :oid=\"to.params?.oid\"\n :pid=\"to.params?.pid\"\n :qid=\"to.params?.qid\"\n :rid=\"to.params?.rid\"\n :sid=\"to.params?.sid\"\n :tid=\"to.params?.tid\"\n :uid=\"to.params?.uid\"\n :vid=\"to.params?.vid\"\n :wid=\"to.params?.wid\"\n :xid=\"to.params?.xid\"\n :yid=\"to.params?.yid\"\n :zid=\"to.params?.zid\"\n @click=\"push()\"\n ><slot\n /></a>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n props: {\n to: {\n type: undefined as PropType<any> | undefined, // eslint-disable-line @typescript-eslint/no-explicit-any\n default: () => ({})\n },\n class: {\n type: String,\n default: ''\n }\n },\n computed: {\n classes: function (): string {\n return this.class\n }\n },\n methods: {\n push: function (): void {\n ;(this as any).$router.push(this.to) // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClMockRouterLink from './template.vue'\n\nClMockRouterLink.install = (Vue: App) => {\n Vue.component(ClMockRouterLink.name ?? 'ClNoName', ClMockRouterLink)\n}\n\nexport default ClMockRouterLink\n","<template>\n <div :id=\"id\" :class=\"`modal ${clazz}`\" tabindex=\"-1\" data-bs-backdrop=\"static\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <slot name=\"title\">Information</slot>\n <button v-if=\"quick\" class=\"cl-btn-quickaction\" @click=\"$emit('quick', quick)\">\n {{ quick }}\n </button>\n <a\n v-if=\"helpUrl\"\n class=\"modal-help\"\n :href=\"helpUrl\"\n target=\"_blank\"\n title=\"Show help in new window.\"\n ><i class=\"far fa-question-circle\" aria-hidden=\"true\"\n /></a>\n </div>\n <form\n v-if=\"form\"\n :id=\"`${id}-form`\"\n class=\"modal-body cl-form container\"\n novalidate\n @submit.prevent\n >\n <slot />\n <slot name=\"body\" />\n </form>\n <div v-else class=\"modal-body\">\n <slot />\n <slot name=\"body\" />\n </div>\n <div class=\"modal-footer\">\n <span class=\"modal-footer-left cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-left\"\n /></span>\n <span class=\"modal-footer-center cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer\"\n /></span>\n <span class=\"modal-footer-right cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-right\"\n /></span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModal',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: null\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n class: {\n type: String,\n default: null\n },\n helpUrl: {\n type: String,\n default: null\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n return this.class\n }\n },\n emits: ['quick'],\n mounted () {\n const modal = document.getElementById(this.id || '')\n const self = this // eslint-disable-line @typescript-eslint/no-this-alias\n\n if (modal) {\n modal.addEventListener('hidden.bs.modal', function () {\n if (self.onClose) self.onClose()\n })\n modal.addEventListener('show.bs.modal', function () {\n if (self.onOpen) self.onOpen()\n })\n }\n }\n})\n</script>\n","<template>\n <div :id=\"id\" :class=\"`modal ${clazz}`\" tabindex=\"-1\" data-bs-backdrop=\"static\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <slot name=\"title\">Information</slot>\n <button v-if=\"quick\" class=\"cl-btn-quickaction\" @click=\"$emit('quick', quick)\">\n {{ quick }}\n </button>\n <a\n v-if=\"helpUrl\"\n class=\"modal-help\"\n :href=\"helpUrl\"\n target=\"_blank\"\n title=\"Show help in new window.\"\n ><i class=\"far fa-question-circle\" aria-hidden=\"true\"\n /></a>\n </div>\n <form\n v-if=\"form\"\n :id=\"`${id}-form`\"\n class=\"modal-body cl-form container\"\n novalidate\n @submit.prevent\n >\n <slot />\n <slot name=\"body\" />\n </form>\n <div v-else class=\"modal-body\">\n <slot />\n <slot name=\"body\" />\n </div>\n <div class=\"modal-footer\">\n <span class=\"modal-footer-left cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-left\"\n /></span>\n <span class=\"modal-footer-center cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer\"\n /></span>\n <span class=\"modal-footer-right cl-spacing-box cl-spacing-none\"\n ><slot name=\"footer-right\"\n /></span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModal',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: null\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n class: {\n type: String,\n default: null\n },\n helpUrl: {\n type: String,\n default: null\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n return this.class\n }\n },\n emits: ['quick'],\n mounted () {\n const modal = document.getElementById(this.id || '')\n const self = this // eslint-disable-line @typescript-eslint/no-this-alias\n\n if (modal) {\n modal.addEventListener('hidden.bs.modal', function () {\n if (self.onClose) self.onClose()\n })\n modal.addEventListener('show.bs.modal', function () {\n if (self.onOpen) self.onOpen()\n })\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModal from './template.vue'\n\nClModal.install = (Vue: App) => {\n Vue.component(ClModal.name ?? 'ClNoName', ClModal)\n}\n\nexport default ClModal\n","<template>\n <cl-modal-form\n :id=\"id\"\n :class=\"clazz\"\n :on-open=\"reset\"\n :disabled=\"!valid\"\n :spinner=\"spinner\"\n :valid=\"valid\"\n @ok=\"$emit('ok')\"\n :ok=\"ok ?? button\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body>\n <slot />\n <p>\n To confirm your intention, please type <code>{{ text }}</code> into this text field:\n </p>\n <cl-field\n ref=\"text\"\n type=\"text\"\n required\n :pattern=\"`^${text}$`\"\n class=\"text-center cl-field-monospace it-confirm\"\n autofocus\n @changed=\"validate()\"\n @keyup.enter=\"submit()\"\n />\n </template>\n </cl-modal-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalConfirm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-confirm'\n },\n class: {\n type: String,\n default: undefined\n },\n text: {\n type: String,\n default: 'confirm'\n },\n title: {\n type: String,\n default: 'Are you sure?'\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n quick: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n reset: function () {\n this.valid = false\n CL.clFormFieldReset(this.$refs.text, '')\n CL.clFormReset(`${this.id}-form`)\n },\n validate: function () {\n this.valid = this.$refs.text?.validateSilent()\n }\n }\n})\n</script>\n","<template>\n <cl-modal-form\n :id=\"id\"\n :class=\"clazz\"\n :on-open=\"reset\"\n :disabled=\"!valid\"\n :spinner=\"spinner\"\n :valid=\"valid\"\n @ok=\"$emit('ok')\"\n :ok=\"ok ?? button\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body>\n <slot />\n <p>\n To confirm your intention, please type <code>{{ text }}</code> into this text field:\n </p>\n <cl-field\n ref=\"text\"\n type=\"text\"\n required\n :pattern=\"`^${text}$`\"\n class=\"text-center cl-field-monospace it-confirm\"\n autofocus\n @changed=\"validate()\"\n @keyup.enter=\"submit()\"\n />\n </template>\n </cl-modal-form>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalConfirm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-confirm'\n },\n class: {\n type: String,\n default: undefined\n },\n text: {\n type: String,\n default: 'confirm'\n },\n title: {\n type: String,\n default: 'Are you sure?'\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n quick: {\n type: String,\n default: undefined\n },\n spinner: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n valid: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n reset: function () {\n this.valid = false\n CL.clFormFieldReset(this.$refs.text, '')\n CL.clFormReset(`${this.id}-form`)\n },\n validate: function () {\n this.valid = this.$refs.text?.validateSilent()\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModalConfirm from './template.vue'\n\nClModalConfirm.install = (Vue: App) => {\n Vue.component(ClModalConfirm.name ?? 'ClNoName', ClModalConfirm)\n}\n\nexport default ClModalConfirm\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n form\n :on-open=\"onOpen\"\n :on-close=\"onClose\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template v-if=\"$slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-else #title>\n {{ title }}\n </template>\n\n <template #body>\n <slot />\n <slot name=\"body\" />\n </template>\n <template #footer-left>\n <button type=\"button\" class=\"btn cl-color-secondary it-cancel\" data-bs-dismiss=\"modal\">\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n disabled: !valid,\n 'cl-btn-spinner': spinner\n }\"\n @click=\"submit()\"\n >\n <span>{{ ok }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModalForm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-form'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Form'\n },\n ok: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n spinner: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: true\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n submit: function () {\n if (this.valid) {\n this.$emit('ok')\n }\n }\n }\n})\n</script>\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n form\n :on-open=\"onOpen\"\n :on-close=\"onClose\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template v-if=\"$slots.title\" #title>\n <slot name=\"title\" />\n </template>\n <template v-else #title>\n {{ title }}\n </template>\n\n <template #body>\n <slot />\n <slot name=\"body\" />\n </template>\n <template #footer-left>\n <button type=\"button\" class=\"btn cl-color-secondary it-cancel\" data-bs-dismiss=\"modal\">\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n disabled: !valid,\n 'cl-btn-spinner': spinner\n }\"\n @click=\"submit()\"\n >\n <span>{{ ok }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ClModalForm',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-form'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Form'\n },\n ok: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: 'Cancel'\n },\n spinner: {\n type: Boolean,\n default: false\n },\n valid: {\n type: Boolean,\n default: true\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n emits: ['ok', 'quick'],\n methods: {\n submit: function () {\n if (this.valid) {\n this.$emit('ok')\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModalForm from './template.vue'\n\nClModalForm.install = (Vue: App) => {\n Vue.component(ClModalForm.name ?? 'ClNoName', ClModalForm)\n}\n\nexport default ClModalForm\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n :form=\"form\"\n :on-open=\"opened\"\n :on-close=\"closed\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body> <slot />{{ body }} </template>\n <template #footer-left>\n <button\n v-if=\"cancel\"\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"buttonCancel\"\n >\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n 'cl-btn-spinner': spinner\n }\"\n @click=\"buttonOk\"\n >\n <span>{{ ok ?? button }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalOk',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-ok'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Information'\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n body: {\n type: String,\n default: undefined\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: null\n },\n spinner: {\n type: Boolean,\n default: false\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n emits: ['ok', 'cancel', 'quick'],\n data () {\n return {\n emitted: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n methods: {\n buttonOk: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide() // hide first\n this.$emit('ok', CL.clModalValue(this.id))\n },\n buttonCancel: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide()\n this.$emit('cancel', CL.clModalValue(this.id))\n },\n opened: function () {\n this.emitted = false\n if (this.onOpen) this.onOpen()\n },\n closed: function () {\n // ESC press emits 'cancel', but shouldn’t fire double\n if (!this.emitted) {\n this.$emit('cancel', CL.clModalValue(this.id))\n }\n if (this.onClose) this.onClose()\n }\n }\n})\n</script>\n","<template>\n <cl-modal\n :id=\"id\"\n :class=\"clazz\"\n :form=\"form\"\n :on-open=\"opened\"\n :on-close=\"closed\"\n :quick=\"quick\"\n @quick=\"$emit('quick')\"\n >\n <template #title>\n {{ title }}\n </template>\n <template #body> <slot />{{ body }} </template>\n <template #footer-left>\n <button\n v-if=\"cancel\"\n type=\"button\"\n class=\"btn cl-color-secondary it-cancel\"\n @click=\"buttonCancel\"\n >\n <span>{{ cancel }}</span>\n </button>\n </template>\n <template #footer-right>\n <button\n type=\"button\"\n class=\"btn cl-color-primary it-ok\"\n :class=\"{\n 'cl-btn-spinner': spinner\n }\"\n @click=\"buttonOk\"\n >\n <span>{{ ok ?? button }}</span>\n </button>\n </template>\n </cl-modal>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClModalOk',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'modal-ok'\n },\n class: {\n type: String,\n default: undefined\n },\n title: {\n type: String,\n default: 'Information'\n },\n form: {\n // if true, the modal will render a <form> as body\n type: Boolean,\n default: false\n },\n body: {\n type: String,\n default: undefined\n },\n ok: {\n type: String,\n default: undefined\n },\n button: {\n type: String,\n default: 'OK'\n },\n cancel: {\n type: String,\n default: null\n },\n spinner: {\n type: Boolean,\n default: false\n },\n quick: {\n type: String,\n default: undefined\n },\n onClose: {\n type: Function as PropType<() => void>,\n default: null\n },\n onOpen: {\n type: Function as PropType<() => void>,\n default: null\n }\n },\n emits: ['ok', 'cancel', 'quick'],\n data () {\n return {\n emitted: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n methods: {\n buttonOk: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide() // hide first\n this.$emit('ok', CL.clModalValue(this.id))\n },\n buttonCancel: function () {\n // note: order of these items is very important for $emit to only happen once\n this.emitted = true\n CL.clModalHide()\n this.$emit('cancel', CL.clModalValue(this.id))\n },\n opened: function () {\n this.emitted = false\n if (this.onOpen) this.onOpen()\n },\n closed: function () {\n // ESC press emits 'cancel', but shouldn’t fire double\n if (!this.emitted) {\n this.$emit('cancel', CL.clModalValue(this.id))\n }\n if (this.onClose) this.onClose()\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClModalOk from './template.vue'\n\nClModalOk.install = (Vue: App) => {\n Vue.component(ClModalOk.name ?? 'ClNoName', ClModalOk)\n}\n\nexport default ClModalOk\n","<template>\n <input\n :checked=\"clThemeSetup()\"\n @change=\"toggleTheme\"\n id=\"cl-mode-dark\"\n type=\"checkbox\"\n class=\"cl-nav-checkbox\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n />\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-light\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-sun fa-fw\"></i> Light mode\n </label>\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-dark\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-moon fa-fw\"></i> Dark mode\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClNavItemDarkMode',\n inheritAttrs: false,\n methods: {\n clThemeSetup: CL.clThemeSetup,\n toggleTheme: function (e: Event): void {\n CL.clThemeSetDark((e.target as HTMLInputElement).checked)\n }\n }\n})\n</script>\n","<template>\n <input\n :checked=\"clThemeSetup()\"\n @change=\"toggleTheme\"\n id=\"cl-mode-dark\"\n type=\"checkbox\"\n class=\"cl-nav-checkbox\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n />\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-light\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-sun fa-fw\"></i> Light mode\n </label>\n <label\n for=\"cl-mode-dark\"\n class=\"cl-nav-item cl-nav-item-theme-dark\"\n title=\"Switch\"\n aria-hidden=\"true\"\n >\n <i class=\"far fa-moon fa-fw\"></i> Dark mode\n </label>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport * as CL from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClNavItemDarkMode',\n inheritAttrs: false,\n methods: {\n clThemeSetup: CL.clThemeSetup,\n toggleTheme: function (e: Event): void {\n CL.clThemeSetDark((e.target as HTMLInputElement).checked)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClNavItemDarkMode from './template.vue'\n\nClNavItemDarkMode.install = (Vue: App) => {\n Vue.component(ClNavItemDarkMode.name ?? 'ClNoName', ClNavItemDarkMode)\n}\n\nexport default ClNavItemDarkMode\n","export function clSidenavToggle () {\n const checkbox = document.getElementById('cl-nav-side')\n if (checkbox) {\n if (checkbox.checked) {\n checkbox.parentNode.classList.add('cl-nav-side-open')\n\n try {\n localStorage.setItem('sidenavOpen', 'true')\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n } else {\n checkbox.parentNode.classList.remove('cl-nav-side-open')\n\n try {\n localStorage.setItem('sidenavOpen', 'false')\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n }\n }\n}\n\nexport function clSidenavSetup () {\n // open/close sidenav for initial state\n clSidenavOpen(clSidenavInitiallyOpen())\n\n // add click/close handler to anchors\n document.querySelectorAll('.cl-nav-drawer a').forEach(a => {\n a.addEventListener('click', () => {\n if (clSidenavIsMobile()) {\n clSidenavOpen(false)\n\n try {\n localStorage.setItem('sidenavOpen', 'false')\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n }\n })\n })\n\n // listen for open/close to save state\n document.getElementById('cl-nav-side')?.addEventListener('change', function () {\n clSidenavToggle()\n })\n\n // remember open/close state of details/dropdowns\n document.querySelectorAll('.cl-nav-drawer details[id]').forEach(details => {\n details.addEventListener('toggle', event => {\n try {\n localStorage.setItem(`cl-nav-${details.id}`, event.target.hasAttribute('open'))\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n })\n\n // also set/recover initial state\n try {\n const open = localStorage.getItem(`cl-nav-${details.id}`)\n if (open === 'true') details.open = true\n } catch (e) {\n e.ignore?.()\n } // catch & ignore private mode\n })\n\n // enable drawer animations a little late\n setTimeout(function () {\n document.querySelectorAll('body').forEach(body => {\n body.classList.add('cl-animate')\n })\n }, 1000)\n}\n\nfunction clSidenavOpen (value) {\n const checkbox = document.getElementById('cl-nav-side')\n if (checkbox) {\n checkbox.checked = value\n }\n}\n\nfunction clSidenavIsMobile () {\n return Math.max(document?.documentElement?.clientWidth || 0, window?.innerWidth || 0) < 1200\n}\n\nfunction clSidenavInitiallyOpen () {\n const stored = localStorage.getItem('sidenavOpen')\n if (stored == null) {\n return !clSidenavIsMobile()\n } else {\n return JSON.parse(stored)\n }\n}\n","<template>\n <input\n id=\"cl-nav-side\"\n type=\"checkbox\"\n :class=\"`cl-nav-checkbox${clazz}`\"\n @change=\"toggle\"\n tabindex=\"-1\"\n />\n <nav class=\"cl-nav-side\">\n <label class=\"cl-nav-backdrop\" for=\"cl-nav-side\" />\n <div class=\"cl-nav-drawer\">\n <div data-simplebar>\n <slot />\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clSidenavToggle, clSidenavSetup } from './Side.js'\n\nexport default defineComponent({\n name: 'ClNavSide',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n this.setup()\n },\n methods: {\n toggle: function () {\n clSidenavToggle()\n },\n setup: function () {\n this.$nextTick(() => {\n clSidenavSetup()\n })\n }\n }\n})\n</script>\n","<template>\n <input\n id=\"cl-nav-side\"\n type=\"checkbox\"\n :class=\"`cl-nav-checkbox${clazz}`\"\n @change=\"toggle\"\n tabindex=\"-1\"\n />\n <nav class=\"cl-nav-side\">\n <label class=\"cl-nav-backdrop\" for=\"cl-nav-side\" />\n <div class=\"cl-nav-drawer\">\n <div data-simplebar>\n <slot />\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clSidenavToggle, clSidenavSetup } from './Side.js'\n\nexport default defineComponent({\n name: 'ClNavSide',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n this.setup()\n },\n methods: {\n toggle: function () {\n clSidenavToggle()\n },\n setup: function () {\n this.$nextTick(() => {\n clSidenavSetup()\n })\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClNavSide from './template.vue'\n\nClNavSide.install = (Vue: App) => {\n Vue.component(ClNavSide.name ?? 'ClNoName', ClNavSide)\n}\n\nexport default ClNavSide\n","<template>\n <nav id=\"cl-nav-top\" :class=\"`cl-nav-top${clazz}`\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12 cl-grid-flex-centered\">\n <label class=\"cl-nav-side-burger\" for=\"cl-nav-side\" aria-label=\"Navigation\"\n ><i class=\"fas fa-bars\" aria-hidden=\"true\"\n /></label>\n <slot /><slot name=\"title\" />\n </div>\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClNavTop',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.$route.meta?.fluid\n },\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","<template>\n <nav id=\"cl-nav-top\" :class=\"`cl-nav-top${clazz}`\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12 cl-grid-flex-centered\">\n <label class=\"cl-nav-side-burger\" for=\"cl-nav-side\" aria-label=\"Navigation\"\n ><i class=\"fas fa-bars\" aria-hidden=\"true\"\n /></label>\n <slot /><slot name=\"title\" />\n </div>\n </div>\n </div>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClNavTop',\n inheritAttrs: false,\n props: {\n class: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.$route.meta?.fluid\n },\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClNavTop from './template.vue'\n\nClNavTop.install = (Vue: App) => {\n Vue.component(ClNavTop.name ?? 'ClNoName', ClNavTop)\n}\n\nexport default ClNavTop\n","<template>\n <span class=\"cl-org\">{{ name }}<slot /> </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClOrg',\n props: {\n name: {\n type: String,\n default: 'No organization'\n }\n }\n})\n</script>\n","<template>\n <span class=\"cl-org\">{{ name }}<slot /> </span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClOrg',\n props: {\n name: {\n type: String,\n default: 'No organization'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClOrg from './template.vue'\n\nClOrg.install = (Vue: App) => {\n Vue.component(ClOrg.name ?? 'ClNoName', ClOrg)\n}\n\nexport default ClOrg\n","<template>\n <cl-section-headline\n v-if=\"!fullscreen\"\n :id=\"id ?? $route.name\"\n :title=\"title ?? $route.meta?.title ?? 'Castlabs'\"\n :class=\"clazz\"\n :fluid=\"$route.meta?.fluid\"\n />\n <div v-if=\"loading\" class=\"cl-page-spinner\">\n <cl-spinner />\n </div>\n <slot v-else-if=\"notFound\" name=\"notFound\">\n <cl-section-main :fluid=\"$route.meta?.fluid\">\n <p class=\"cl-p-large\">Hmm, it seems we can’t find what you’re looking for.</p>\n <p class=\"alert cl-alert-info\">This resource may have been moved or it might have expired.</p>\n <button type=\"button\" class=\"btn cl-color-secondary cl-spacing-large\" @click=\"back\">\n <span>Back</span>\n </button>\n </cl-section-main>\n </slot>\n <div v-else-if=\"fullscreen\" class=\"cl-page-fullscreen\">\n <slot />\n </div>\n <slot v-else />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clModalIsShown } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClPage',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: undefined\n },\n loading: {\n type: Boolean,\n default: false\n },\n notFound: {\n type: Boolean,\n default: false\n },\n fullscreen: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n document.addEventListener('keydown', this.keydown)\n },\n unmounted () {\n document.removeEventListener('keydown', this.keydown)\n },\n methods: {\n back () {\n history.go(-1)\n },\n keydown (keydown: KeyboardEvent) {\n switch (keydown.key) {\n case 'Escape':\n if (this.$route.meta.backOnEsc && !clModalIsShown()) {\n const backbutton = document.querySelector('.cl-back-cancel-ok-back') as\n | HTMLElement\n | undefined\n if (backbutton) {\n backbutton.click()\n return\n }\n this.$router.go(-1)\n }\n break\n }\n }\n }\n})\n</script>\n","<template>\n <cl-section-headline\n v-if=\"!fullscreen\"\n :id=\"id ?? $route.name\"\n :title=\"title ?? $route.meta?.title ?? 'Castlabs'\"\n :class=\"clazz\"\n :fluid=\"$route.meta?.fluid\"\n />\n <div v-if=\"loading\" class=\"cl-page-spinner\">\n <cl-spinner />\n </div>\n <slot v-else-if=\"notFound\" name=\"notFound\">\n <cl-section-main :fluid=\"$route.meta?.fluid\">\n <p class=\"cl-p-large\">Hmm, it seems we can’t find what you’re looking for.</p>\n <p class=\"alert cl-alert-info\">This resource may have been moved or it might have expired.</p>\n <button type=\"button\" class=\"btn cl-color-secondary cl-spacing-large\" @click=\"back\">\n <span>Back</span>\n </button>\n </cl-section-main>\n </slot>\n <div v-else-if=\"fullscreen\" class=\"cl-page-fullscreen\">\n <slot />\n </div>\n <slot v-else />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clModalIsShown } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClPage',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: undefined\n },\n loading: {\n type: Boolean,\n default: false\n },\n notFound: {\n type: Boolean,\n default: false\n },\n fullscreen: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n return this.class ? ` ${this.class}` : ''\n }\n },\n mounted () {\n document.addEventListener('keydown', this.keydown)\n },\n unmounted () {\n document.removeEventListener('keydown', this.keydown)\n },\n methods: {\n back () {\n history.go(-1)\n },\n keydown (keydown: KeyboardEvent) {\n switch (keydown.key) {\n case 'Escape':\n if (this.$route.meta.backOnEsc && !clModalIsShown()) {\n const backbutton = document.querySelector('.cl-back-cancel-ok-back') as\n | HTMLElement\n | undefined\n if (backbutton) {\n backbutton.click()\n return\n }\n this.$router.go(-1)\n }\n break\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClPage from './template.vue'\n\nClPage.install = (Vue: App) => {\n Vue.component(ClPage.name ?? 'ClNoName', ClPage)\n}\n\nexport default ClPage\n","<template>\n <nav v-if=\"pager?.pages?.length > 1\" class=\"col-12 cl-spacing-medium\">\n <ul class=\"pagination\">\n <li v-if=\"pager.previous\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.previous)\"\n aria-label=\"Prev\"\n >\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </li>\n\n <template v-for=\"(page, index) of pager.pages\" :key=\"page\">\n <li v-if=\"index > 0 && pager.pages[index - 1] !== page - 1\" class=\"page-item disabled\">\n …\n </li>\n <li class=\"page-item\" :class=\"{ active: page === pager.current }\">\n <button class=\"page-link\" @click=\"$emit('page', page)\">\n {{ page }}\n </button>\n </li>\n </template>\n\n <li v-if=\"pager.next\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.next)\"\n aria-label=\"Next\"\n >\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </li>\n </ul>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport type Pager = {\n previous: number | null\n next: number | null\n current: number\n pages: number[]\n}\n\n/**\n * Fetch a pager for given parameters, list length, pagesize, current page\n *\n * @param {Number} items Length of the list in items/records.\n * @param {Number} pagesize Size of a page in items/records.\n * @param {Number} current Selected page\n * @param {Number} window How many pages will appear before/after the current one.\n * @return {Object} Page object.\n */\nexport function calculatePageObject (\n items: number,\n pagesize: number,\n current: number,\n window: number\n): Pager {\n const pages = []\n const total = Math.ceil(items / pagesize)\n if (current < 1) current = 1\n if (current > total) current = total\n for (let page = 1; page <= total; page++) {\n if ((page >= current - window && page <= current + window) || page === 1 || page === total) {\n pages.push(page)\n }\n }\n return {\n previous: current > 1 ? current - 1 : null,\n next: current < total ? current + 1 : null,\n current,\n pages\n }\n}\n\nexport default defineComponent({\n name: 'ClPagination',\n props: {\n items: {\n type: Number,\n default: 0\n },\n pagesize: {\n type: Number,\n default: 25\n },\n current: {\n type: Number,\n default: 1\n },\n window: {\n type: Number,\n default: 3\n },\n test: {\n type: Boolean,\n default: false\n }\n },\n emits: ['page'],\n computed: {\n pager: function (): Pager {\n return calculatePageObject(this.items, this.pagesize, this.current, this.window)\n }\n }\n})\n</script>\n","<template>\n <nav v-if=\"pager?.pages?.length > 1\" class=\"col-12 cl-spacing-medium\">\n <ul class=\"pagination\">\n <li v-if=\"pager.previous\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.previous)\"\n aria-label=\"Prev\"\n >\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-left\" aria-hidden=\"true\"></i><template v-if=\"test\">P</template>\n </li>\n\n <template v-for=\"(page, index) of pager.pages\" :key=\"page\">\n <li v-if=\"index > 0 && pager.pages[index - 1] !== page - 1\" class=\"page-item disabled\">\n …\n </li>\n <li class=\"page-item\" :class=\"{ active: page === pager.current }\">\n <button class=\"page-link\" @click=\"$emit('page', page)\">\n {{ page }}\n </button>\n </li>\n </template>\n\n <li v-if=\"pager.next\" class=\"page-item\">\n <button\n type=\"button\"\n class=\"page-link\"\n @click=\"$emit('page', pager.next)\"\n aria-label=\"Next\"\n >\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </button>\n </li>\n <li v-else class=\"page-item disabled\">\n <i class=\"fas fa-arrow-right\" aria-hidden=\"true\"></i><template v-if=\"test\">N</template>\n </li>\n </ul>\n </nav>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport type Pager = {\n previous: number | null\n next: number | null\n current: number\n pages: number[]\n}\n\n/**\n * Fetch a pager for given parameters, list length, pagesize, current page\n *\n * @param {Number} items Length of the list in items/records.\n * @param {Number} pagesize Size of a page in items/records.\n * @param {Number} current Selected page\n * @param {Number} window How many pages will appear before/after the current one.\n * @return {Object} Page object.\n */\nexport function calculatePageObject (\n items: number,\n pagesize: number,\n current: number,\n window: number\n): Pager {\n const pages = []\n const total = Math.ceil(items / pagesize)\n if (current < 1) current = 1\n if (current > total) current = total\n for (let page = 1; page <= total; page++) {\n if ((page >= current - window && page <= current + window) || page === 1 || page === total) {\n pages.push(page)\n }\n }\n return {\n previous: current > 1 ? current - 1 : null,\n next: current < total ? current + 1 : null,\n current,\n pages\n }\n}\n\nexport default defineComponent({\n name: 'ClPagination',\n props: {\n items: {\n type: Number,\n default: 0\n },\n pagesize: {\n type: Number,\n default: 25\n },\n current: {\n type: Number,\n default: 1\n },\n window: {\n type: Number,\n default: 3\n },\n test: {\n type: Boolean,\n default: false\n }\n },\n emits: ['page'],\n computed: {\n pager: function (): Pager {\n return calculatePageObject(this.items, this.pagesize, this.current, this.window)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClPagination from './template.vue'\n\nClPagination.install = (Vue: App) => {\n Vue.component(ClPagination.name ?? 'ClNoName', ClPagination)\n}\n\nexport default ClPagination\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClPlan',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-plan '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ` cl-color-red`\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClPlan',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-plan '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ` cl-color-red`\n } else if (this.secondary) {\n c += ' cl-color-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClPlan from './template.vue'\n\nClPlan.install = (Vue: App) => {\n Vue.component(ClPlan.name ?? 'ClNoName', ClPlan)\n}\n\nexport default ClPlan\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClRole',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-role '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-role-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","<template>\n <span v-if=\"derived\" class=\"cl-badge-derived\"\n ><span :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span\n ></span>\n <span v-else :id=\"id\" :class=\"clazz\">{{ name }}<slot /></span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClRole',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n },\n primary: {\n type: Boolean,\n default: false\n },\n secondary: {\n type: Boolean,\n default: false\n },\n derived: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n let c = 'cl-role '\n if (!this.primary && !this.secondary) {\n c += ' cl-color-ash'\n } else if (this.primary) {\n c += ' cl-color-red'\n } else if (this.secondary) {\n c += ' cl-role-steel'\n }\n\n return c + (this.class ? ` ${this.class}` : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClRole from './template.vue'\n\nClRole.install = (Vue: App) => {\n Vue.component(ClRole.name ?? 'ClNoName', ClRole)\n}\n\nexport default ClRole\n","<template>\n <cl-section-main class=\"cl-section-details it-section-details\">\n <dl class=\"cl-dl cl-tight\">\n <template v-if=\"myId\">\n <dt>ID</dt>\n <dd>\n <cl-copy code>{{ myId }}</cl-copy>\n </dd>\n </template>\n <template v-if=\"created\">\n <dt>Created</dt>\n <dd>{{ created instanceof Date ? clFormatDateTimeUTC(created, true) : created }}</dd>\n </template>\n <template v-if=\"updated\">\n <dt>Updated</dt>\n <dd>{{ updated instanceof Date ? clFormatDateTimeUTC(updated, true) : updated }}</dd>\n </template>\n <slot />\n </dl>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clFormatDateTimeUTC } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClSectionDetails',\n props: {\n myId: {\n type: String,\n default: null\n },\n created: {\n type: [String, Date],\n default: null\n },\n updated: {\n type: [String, Date],\n default: null\n }\n },\n methods: {\n clFormatDateTimeUTC\n }\n})\n</script>\n\n<style lang=\"scss\"></style>\n","<template>\n <cl-section-main class=\"cl-section-details it-section-details\">\n <dl class=\"cl-dl cl-tight\">\n <template v-if=\"myId\">\n <dt>ID</dt>\n <dd>\n <cl-copy code>{{ myId }}</cl-copy>\n </dd>\n </template>\n <template v-if=\"created\">\n <dt>Created</dt>\n <dd>{{ created instanceof Date ? clFormatDateTimeUTC(created, true) : created }}</dd>\n </template>\n <template v-if=\"updated\">\n <dt>Updated</dt>\n <dd>{{ updated instanceof Date ? clFormatDateTimeUTC(updated, true) : updated }}</dd>\n </template>\n <slot />\n </dl>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { clFormatDateTimeUTC } from '@/utils/ui'\n\nexport default defineComponent({\n name: 'ClSectionDetails',\n props: {\n myId: {\n type: String,\n default: null\n },\n created: {\n type: [String, Date],\n default: null\n },\n updated: {\n type: [String, Date],\n default: null\n }\n },\n methods: {\n clFormatDateTimeUTC\n }\n})\n</script>\n\n<style lang=\"scss\"></style>\n","import type { App } from 'vue'\nimport COMPONENT from './template.vue'\n\nCOMPONENT.install = (Vue: App) => {\n Vue.component(COMPONENT.name ?? 'ClNoName', COMPONENT)\n}\n\nexport default COMPONENT\n","<template>\n <section class=\"cl-section cl-section-form cl-color-haze\">\n <form :id=\"id\" novalidate :class=\"containerClass\" @submit.prevent>\n <fieldset class=\"row\" :disabled=\"disabled\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </fieldset>\n </form>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionForm',\n props: {\n id: {\n type: String,\n default: 'FORM'\n },\n fluid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid ? 'cl-form container-fluid' : 'cl-form container'\n }\n }\n})\n</script>\n","<template>\n <section class=\"cl-section cl-section-form cl-color-haze\">\n <form :id=\"id\" novalidate :class=\"containerClass\" @submit.prevent>\n <fieldset class=\"row\" :disabled=\"disabled\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </fieldset>\n </form>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionForm',\n props: {\n id: {\n type: String,\n default: 'FORM'\n },\n fluid: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid ? 'cl-form container-fluid' : 'cl-form container'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionForm from './template.vue'\n\nClSectionForm.install = (Vue: App) => {\n Vue.component(ClSectionForm.name ?? 'ClNoName', ClSectionForm)\n}\n\nexport default ClSectionForm\n","<template>\n <section class=\"cl-section cl-section-headline\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12\">\n <h1 v-if=\"title\">\n {{ title\n }}<a\n v-if=\"href\"\n :href=\"href\"\n class=\"cl-headline-help-icon\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Help\"\n >\n <i class=\"fas fa-question-circle\" aria-hidden=\"true\" />\n </a>\n </h1>\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionHeadline',\n props: {\n fluid: {\n type: Boolean,\n default: false\n },\n title: {\n type: String,\n default: undefined\n },\n href: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid\n ? 'container-fluid cl-container-spacing-small'\n : 'container cl-container-spacing-small'\n }\n }\n})\n</script>\n","<template>\n <section class=\"cl-section cl-section-headline\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <div class=\"col-12\">\n <h1 v-if=\"title\">\n {{ title\n }}<a\n v-if=\"href\"\n :href=\"href\"\n class=\"cl-headline-help-icon\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title=\"Help\"\n >\n <i class=\"fas fa-question-circle\" aria-hidden=\"true\" />\n </a>\n </h1>\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionHeadline',\n props: {\n fluid: {\n type: Boolean,\n default: false\n },\n title: {\n type: String,\n default: undefined\n },\n href: {\n type: String,\n default: undefined\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n containerClass: function () {\n return this.isFluid\n ? 'container-fluid cl-container-spacing-small'\n : 'container cl-container-spacing-small'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionHeadline from './template.vue'\n\nClSectionHeadline.install = (Vue: App) => {\n Vue.component(ClSectionHeadline.name ?? 'ClNoName', ClSectionHeadline)\n}\n\nexport default ClSectionHeadline\n","<template>\n <section :class=\"sectionClass\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionMain',\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n sectionClass: function () {\n return this.alternate ? 'cl-section-alternate' : 'cl-section'\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","<template>\n <section :class=\"sectionClass\">\n <div :class=\"containerClass\">\n <div class=\"row\">\n <slot v-if=\"noCol\" />\n <div v-else class=\"col-12\">\n <slot />\n </div>\n </div>\n </div>\n </section>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSectionMain',\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n noCol: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n sectionClass: function () {\n return this.alternate ? 'cl-section-alternate' : 'cl-section'\n },\n containerClass: function () {\n return this.isFluid ? 'container-fluid' : 'container'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionMain from './template.vue'\n\nClSectionMain.install = (Vue: App) => {\n Vue.component(ClSectionMain.name ?? 'ClNoName', ClSectionMain)\n}\n\nexport default ClSectionMain\n","<template>\n <cl-section-main :class=\"sectionClass\" no-col :fluid=\"isFluid\">\n <div :class=\"mainClass\"><slot /><slot name=\"main\" /></div>\n <div v-if=\"$slots.side\" :class=\"sideClass\">\n <slot name=\"side\" />\n </div>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport ClSectionMain from '../ClSectionMain/template.vue'\n\nexport default defineComponent({\n name: 'ClSectionMainSide',\n components: {\n ClSectionMain\n },\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n mainClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-9' : 'col-lg-8')\n },\n sideClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-3' : 'col-lg-4')\n },\n sectionClass: function () {\n return 'cl-section-main-side ' + (this.alternate ? 'cl-section-alternate' : '')\n }\n }\n})\n</script>\n","<template>\n <cl-section-main :class=\"sectionClass\" no-col :fluid=\"isFluid\">\n <div :class=\"mainClass\"><slot /><slot name=\"main\" /></div>\n <div v-if=\"$slots.side\" :class=\"sideClass\">\n <slot name=\"side\" />\n </div>\n </cl-section-main>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport ClSectionMain from '../ClSectionMain/template.vue'\n\nexport default defineComponent({\n name: 'ClSectionMainSide',\n components: {\n ClSectionMain\n },\n props: {\n alternate: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n isFluid: function (): boolean {\n return this.fluid || this.$route.meta?.fluid\n },\n mainClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-9' : 'col-lg-8')\n },\n sideClass: function () {\n return 'col-12 ' + (this.slim ? 'col-lg-3' : 'col-lg-4')\n },\n sectionClass: function () {\n return 'cl-section-main-side ' + (this.alternate ? 'cl-section-alternate' : '')\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSectionMainSide from './template.vue'\n\nClSectionMainSide.install = (Vue: App) => {\n Vue.component(ClSectionMainSide.name ?? 'ClNoName', ClSectionMainSide)\n}\n\nexport default ClSectionMainSide\n","<template>\n <div class=\"cl-spinner\">{{ title }}<i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\" /></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSpinner',\n props: {\n title: {\n type: String,\n default: 'Loading ...'\n }\n }\n})\n</script>\n","<template>\n <div class=\"cl-spinner\">{{ title }}<i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\" /></div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClSpinner',\n props: {\n title: {\n type: String,\n default: 'Loading ...'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClSpinner from './template.vue'\n\nClSpinner.install = (Vue: App) => {\n Vue.component(ClSpinner.name ?? 'ClNoName', ClSpinner)\n}\n\nexport default ClSpinner\n","export function clTableSetupResize (id, auto = false) {\n document.querySelectorAll(`#${id} .cl-resizer`).forEach(resizer => {\n clTableSetResizeListeners(resizer, auto)\n })\n}\n\nexport function clTableSortStatic (id, col) {\n const getCellValue = (tr, idx) => tr.children[idx].innerText || tr.children[idx].textContent\n\n const comparer = (idx, asc) => (a, b) =>\n ((v1, v2) =>\n v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2)\n ? v1 - v2\n : v1.toString().localeCompare(v2))(\n getCellValue(asc ? a : b, idx),\n getCellValue(asc ? b : a, idx)\n )\n\n const table = document.getElementById(id)\n const tbody = table.querySelector('tbody')\n Array.from(tbody.querySelectorAll('tr'))\n .sort(comparer(col, (this.asc = !this.asc)))\n .forEach(tr => tbody.appendChild(tr))\n\n table.querySelectorAll('thead i').forEach(i => i.classList.remove('fa-sort-up', 'fa-sort-down'))\n table\n .querySelector(`th:nth-child(${col + 1}) i`)\n .classList.add(this.asc ? 'fa-sort-up' : 'fa-sort-down')\n}\n\nlet lastX = 0\nlet nextCol = null\n\nfunction clTableSetResizeListeners (resizer, auto = false) {\n lastX = 0\n nextCol = null\n resizer.addEventListener('mousedown', mousedown)\n document.addEventListener('mousemove', mousemove)\n document.addEventListener('mouseup', mouseup)\n if (auto) {\n resizer.addEventListener('click', mouseclick)\n }\n}\n\nconst mousedown = mousedown => {\n mousedown.preventDefault()\n nextCol = mousedown.target ? mousedown.target.parentElement : null\n lastX = mousedown.pageX\n}\n\nconst mousemove = mousemove => {\n if (nextCol !== null) {\n mousemove.preventDefault()\n const delta = mousemove.pageX - lastX\n lastX = mousemove.pageX\n\n const colIndex = getColIndex(nextCol) - 1\n const id = mousemove.target?.closest('table')?.id ?? 'unknown'\n const nowrap = !!document.querySelector(`#${id}.cl-table-nowrap`) // are we in nowrap mode?\n if (nowrap) {\n // in nowrap mode we only adjust the thead col\n document.querySelectorAll(`#${id} tr th:nth-child(${colIndex})`).forEach(cel => {\n const width =\n (cel.style.maxWidth === '' ? cel.offsetWidth : parseInt(cel.style.maxWidth)) + delta\n cel.style.width = (width > 32 ? width : 32) + 'px'\n cel.style.maxWidth = (width > 32 ? width : 32) + 'px'\n cel.clWidth = 0\n })\n } else {\n // in regular mode we shrink one and enlarge the other col\n document.querySelectorAll(`#${id} tr td:nth-child(${colIndex})`).forEach(cel => {\n const width = cel.offsetWidth + delta\n cel.style.width = (width > 32 ? width : 32) + 'px'\n })\n document.querySelectorAll(`#${id} tr td:nth-child(${colIndex + 1})`).forEach(cel => {\n const width = cel.offsetWidth - delta\n cel.style.width = (width > 32 ? width : 32) + 'px'\n })\n }\n }\n}\n\nconst mouseup = mouseup => {\n if (nextCol !== null) {\n mouseup.preventDefault()\n lastX = 0\n nextCol = null\n }\n}\n\nconst mouseclick = click => {\n if (click.detail === 2) {\n const table = click.target?.closest('table')\n if (!table) return\n click.preventDefault()\n\n const id = table?.id ?? 'unknown'\n const th = click.target?.closest('th')\n const colIndex = Array.from(th.parentElement.children).indexOf(th)\n\n // set all to something small so scrollWidth is correct for all-smaller items (head only)\n document.querySelectorAll(`#${id} th:nth-child(${colIndex})`).forEach(cel => {\n cel.style.width = '1px'\n cel.style.maxWidth = '1px'\n })\n\n // iterate over all rows and col index (thead + tbody), find max cel width\n let maxCellWidth = 0\n document\n .querySelectorAll(`#${id} th:nth-child(${colIndex}), #${id} td:nth-child(${colIndex})`)\n .forEach(cel => {\n if ((cel.colSpan ?? 1) === 1) {\n const cellWidth = cel.scrollWidth\n maxCellWidth = cellWidth > maxCellWidth ? cellWidth : maxCellWidth\n }\n })\n\n // set all outer width to inner (head only)\n document.querySelectorAll(`#${id} th:nth-child(${colIndex})`).forEach(cel => {\n if (cel.clWidth === maxCellWidth) {\n // revert to un-maximized\n cel.clWidth = 0\n cel.style.removeProperty('width')\n cel.style.removeProperty('max-width')\n } else {\n // maximize\n const padding = 8 * 2\n cel.clWidth = maxCellWidth\n cel.style.width = `${cel.clWidth + padding}px`\n cel.style.maxWidth = `${cel.clWidth + padding}px`\n }\n })\n }\n}\n\nfunction getColIndex (col) {\n // calculate index of a col in a row, 1-based\n let colNo = 0\n while (col) {\n colNo++\n col = col.previousElementSibling\n }\n return colNo\n}\n","<template>\n <div :id=\"id\" :class=\"`cl-table-scroll ${clazzOuter}`\">\n <table :id=\"$uid\" :class=\"`cl-table-data ${clazz}`\">\n <thead>\n <tr>\n <slot name=\"header\" />\n </tr>\n </thead>\n <tbody v-if=\"rows >= 1\">\n <slot /><slot name=\"body\" />\n </tbody>\n <tbody v-else-if=\"rows === 0\">\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n {{ noDataText }}\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n <cl-spinner />\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"$slots.footer\">\n <tr>\n <slot name=\"footer\" />\n </tr>\n </tfoot>\n <slot name=\"tfoot\" />\n </table>\n </div>\n <cl-modal-ok v-if=\"columns.length > 0\" :id=\"$uid + '-settings'\" title=\"Table settings\">\n <p>Which of the following columns would you like to see?</p>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index < columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index >= columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n </div>\n </div>\n <hr />\n <cl-field-check :value=\"compact\" v-model=\"compact\" class=\"it-table-modal-tight\"\n >Tight table layout</cl-field-check\n >\n </cl-modal-ok>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\nimport { clTableSetupResize } from './Table.js'\n\nexport default defineComponent({\n name: 'ClTable',\n inheritAttrs: false,\n props: {\n id: {\n type: String as PropType<string>,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n nowrap: {\n type: Boolean,\n default: false\n },\n noDataText: {\n type: String,\n default: 'No data available.'\n },\n rows: {\n type: Number,\n default: 1\n },\n nonresponsive: {\n type: Boolean,\n default: false\n },\n hideCols: {\n type: Array as PropType<string[]>,\n default: undefined\n },\n fixed: {\n type: Boolean,\n default: false\n },\n tight: {\n type: Boolean,\n default: false\n },\n autoResize: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n show: Array(32).fill(true),\n compact: this.tight\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n let c = ''\n if (this.nonresponsive) c += ' cl-table-nonresponsive'\n if (this.nowrap) c += ' cl-table-nowrap'\n if (this.fixed) c += ' cl-table-fixed'\n if (this.compact) c += ' cl-tight'\n for (let i = 1; i <= this.show.length; i++) {\n if (!this.show[i - 1]) c += ` cl-table-col-${i}-hide`\n }\n return c\n },\n clazzOuter: function (): string {\n return this.class\n },\n columns: function (): string[] {\n return (this.hideCols ?? []).map(colname => colname.replace(/\\*$/, ''))\n }\n },\n watch: {\n rows: function () {\n this.setupResizer()\n }\n },\n created () {\n if (this.hideCols) {\n for (let i = 0; i < this.columns.length; i++) {\n if (this.hideCols[i] !== this.columns[i]) {\n // if they don’t match, the original hideCol had an asterisk\n this.show[i] = false\n }\n }\n }\n },\n mounted () {\n this.setupResizer()\n },\n methods: {\n setupResizer: function () {\n this.$nextTick(() => {\n clTableSetupResize((this as any).$uid, this.autoResize) // eslint-disable-line @typescript-eslint/no-explicit-any\n })\n }\n }\n})\n</script>\n","<template>\n <div :id=\"id\" :class=\"`cl-table-scroll ${clazzOuter}`\">\n <table :id=\"$uid\" :class=\"`cl-table-data ${clazz}`\">\n <thead>\n <tr>\n <slot name=\"header\" />\n </tr>\n </thead>\n <tbody v-if=\"rows >= 1\">\n <slot /><slot name=\"body\" />\n </tbody>\n <tbody v-else-if=\"rows === 0\">\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n {{ noDataText }}\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"cl-tr-no-data\">\n <td colspan=\"100\">\n <cl-spinner />\n </td>\n </tr>\n </tbody>\n <tfoot v-if=\"$slots.footer\">\n <tr>\n <slot name=\"footer\" />\n </tr>\n </tfoot>\n <slot name=\"tfoot\" />\n </table>\n </div>\n <cl-modal-ok v-if=\"columns.length > 0\" :id=\"$uid + '-settings'\" title=\"Table settings\">\n <p>Which of the following columns would you like to see?</p>\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index < columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n <div class=\"col-12 col-md-6 cl-spacing-none\">\n <template v-for=\"(col, index) in columns\" :key=\"col\">\n <cl-field-check\n v-if=\"index >= columns.length / 2\"\n :value=\"show[index]\"\n v-model=\"show[index]\"\n class=\"col-12 col-md-6 it-checkbox\"\n >{{ col }}</cl-field-check\n >\n </template>\n </div>\n </div>\n </div>\n <hr />\n <cl-field-check :value=\"compact\" v-model=\"compact\" class=\"it-table-modal-tight\"\n >Tight table layout</cl-field-check\n >\n </cl-modal-ok>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\nimport { clTableSetupResize } from './Table.js'\n\nexport default defineComponent({\n name: 'ClTable',\n inheritAttrs: false,\n props: {\n id: {\n type: String as PropType<string>,\n default: undefined\n },\n class: {\n type: String,\n default: ''\n },\n nowrap: {\n type: Boolean,\n default: false\n },\n noDataText: {\n type: String,\n default: 'No data available.'\n },\n rows: {\n type: Number,\n default: 1\n },\n nonresponsive: {\n type: Boolean,\n default: false\n },\n hideCols: {\n type: Array as PropType<string[]>,\n default: undefined\n },\n fixed: {\n type: Boolean,\n default: false\n },\n tight: {\n type: Boolean,\n default: false\n },\n autoResize: {\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n show: Array(32).fill(true),\n compact: this.tight\n }\n },\n computed: {\n clazz: function (): string {\n // wrap/rename as 'class' is a reserved word\n let c = ''\n if (this.nonresponsive) c += ' cl-table-nonresponsive'\n if (this.nowrap) c += ' cl-table-nowrap'\n if (this.fixed) c += ' cl-table-fixed'\n if (this.compact) c += ' cl-tight'\n for (let i = 1; i <= this.show.length; i++) {\n if (!this.show[i - 1]) c += ` cl-table-col-${i}-hide`\n }\n return c\n },\n clazzOuter: function (): string {\n return this.class\n },\n columns: function (): string[] {\n return (this.hideCols ?? []).map(colname => colname.replace(/\\*$/, ''))\n }\n },\n watch: {\n rows: function () {\n this.setupResizer()\n }\n },\n created () {\n if (this.hideCols) {\n for (let i = 0; i < this.columns.length; i++) {\n if (this.hideCols[i] !== this.columns[i]) {\n // if they don’t match, the original hideCol had an asterisk\n this.show[i] = false\n }\n }\n }\n },\n mounted () {\n this.setupResizer()\n },\n methods: {\n setupResizer: function () {\n this.$nextTick(() => {\n clTableSetupResize((this as any).$uid, this.autoResize) // eslint-disable-line @typescript-eslint/no-explicit-any\n })\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTable from './template.vue'\n\nClTable.install = (Vue: App) => {\n Vue.component(ClTable.name ?? 'ClNoName', ClTable)\n}\n\nexport default ClTable\n","<template>\n <td :class=\"condensed ? 'cl-font-condensed' : ''\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCel',\n props: {\n condensed: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","<template>\n <td :class=\"condensed ? 'cl-font-condensed' : ''\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCel',\n props: {\n condensed: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCel from './template.vue'\n\nClTableCel.install = (Vue: App) => {\n Vue.component(ClTableCel.name ?? 'ClNoName', ClTableCel)\n}\n\nexport default ClTableCel\n","<template>\n <td class=\"cl-td-actions\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelActions',\n props: {\n content: {\n // TODO remove? move to cel-links?\n type: String,\n default: ''\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-actions\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelActions',\n props: {\n content: {\n // TODO remove? move to cel-links?\n type: String,\n default: ''\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelActions from './template.vue'\n\nClTableCelActions.install = (Vue: App) => {\n Vue.component(ClTableCelActions.name ?? 'ClNoName', ClTableCelActions)\n}\n\nexport default ClTableCelActions\n","<template>\n <td class=\"cl-td-audit\">\n <i v-tooltip:left=\"value\" class=\"fas fa-info-circle\" aria-hidden=\"true\" />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelAudit',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n value: {\n type: String,\n default: '???'\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-audit\">\n <i v-tooltip:left=\"value\" class=\"fas fa-info-circle\" aria-hidden=\"true\" />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelAudit',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n value: {\n type: String,\n default: '???'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelAudit from './template.vue'\n\nClTableCelAudit.install = (Vue: App) => {\n Vue.component(ClTableCelAudit.name ?? 'ClNoName', ClTableCelAudit)\n}\n\nexport default ClTableCelAudit\n","<template>\n <td class=\"cl-td-boolean\">\n <i :class=\"`fas ${value ? 'fa-check' : 'fa-minus'}`\" aria-hidden=\"true\" />\n <span v-if=\"value\" class=\"sr-only\">Yes</span>\n <span v-else class=\"sr-only\">No</span>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelBoolean',\n props: {\n value: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-boolean\">\n <i :class=\"`fas ${value ? 'fa-check' : 'fa-minus'}`\" aria-hidden=\"true\" />\n <span v-if=\"value\" class=\"sr-only\">Yes</span>\n <span v-else class=\"sr-only\">No</span>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelBoolean',\n props: {\n value: {\n type: Boolean,\n default: false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelBoolean from './template.vue'\n\nClTableCelBoolean.install = (Vue: App) => {\n Vue.component(ClTableCelBoolean.name ?? 'ClNoName', ClTableCelBoolean)\n}\n\nexport default ClTableCelBoolean\n","<template>\n <td class=\"cl-td-checkbox\">\n <div class=\"form-check text-center\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n @change=\"emitAll()\"\n />\n </div>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCheckbox',\n props: {\n id: {\n type: String,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue', 'changed'],\n data () {\n return {\n modelValue: this.value\n }\n },\n watch: {\n value: function (newVal: boolean) {\n this.modelValue = newVal\n }\n },\n methods: {\n emitAll: function () {\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('changed', this.modelValue)\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-checkbox\">\n <div class=\"form-check text-center\">\n <input\n :id=\"id ?? $uid\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :disabled=\"disabled\"\n @change=\"emitAll()\"\n />\n </div>\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCheckbox',\n props: {\n id: {\n type: String,\n default: undefined\n },\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:modelValue', 'changed'],\n data () {\n return {\n modelValue: this.value\n }\n },\n watch: {\n value: function (newVal: boolean) {\n this.modelValue = newVal\n }\n },\n methods: {\n emitAll: function () {\n this.$emit('update:modelValue', this.modelValue)\n this.$emit('changed', this.modelValue)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelCheckbox from './template.vue'\n\nClTableCelCheckbox.install = (Vue: App) => {\n Vue.component(ClTableCelCheckbox.name ?? 'ClNoName', ClTableCelCheckbox)\n}\n\nexport default ClTableCelCheckbox\n","<template>\n <td class=\"cl-td-code\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCode'\n})\n</script>\n","<template>\n <td class=\"cl-td-code\">\n <slot />\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCode'\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelCode from './template.vue'\n\nClTableCelCode.install = (Vue: App) => {\n Vue.component(ClTableCelCode.name ?? 'ClNoName', ClTableCelCode)\n}\n\nexport default ClTableCelCode\n","<template>\n <td class=\"cl-td-currency\">\n {{ currency }} {{ new Intl.NumberFormat('en-US').format(amount) }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCurrency',\n props: {\n amount: {\n type: Number,\n default: 0\n },\n currency: {\n type: String,\n default: 'EUR'\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-currency\">\n {{ currency }} {{ new Intl.NumberFormat('en-US').format(amount) }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelCurrency',\n props: {\n amount: {\n type: Number,\n default: 0\n },\n currency: {\n type: String,\n default: 'EUR'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelCurrency from './template.vue'\n\nClTableCelCurrency.install = (Vue: App) => {\n Vue.component(ClTableCelCurrency.name ?? 'ClNoName', ClTableCelCurrency)\n}\n\nexport default ClTableCelCurrency\n","<template>\n <td class=\"cl-td-date\">\n {{ content }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelDate',\n props: {\n value: {\n type: String,\n default: undefined\n }\n },\n computed: {\n content: function (): string {\n if (this.value) {\n const date = new Date(this.value)\n const yyyy = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const mm = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date)\n const dd = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date)\n const HH = new Intl.DateTimeFormat('en', { hour: '2-digit', hour12: false }).format(date)\n const MM = new Intl.DateTimeFormat('en', { minute: '2-digit' }).format(date)\n return `${yyyy}-${mm}-${dd} ${HH}:${MM}`\n }\n return '-'\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-date\">\n {{ content }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelDate',\n props: {\n value: {\n type: String,\n default: undefined\n }\n },\n computed: {\n content: function (): string {\n if (this.value) {\n const date = new Date(this.value)\n const yyyy = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date)\n const mm = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date)\n const dd = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date)\n const HH = new Intl.DateTimeFormat('en', { hour: '2-digit', hour12: false }).format(date)\n const MM = new Intl.DateTimeFormat('en', { minute: '2-digit' }).format(date)\n return `${yyyy}-${mm}-${dd} ${HH}:${MM}`\n }\n return '-'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelDate from './template.vue'\n\nClTableCelDate.install = (Vue: App) => {\n Vue.component(ClTableCelDate.name ?? 'ClNoName', ClTableCelDate)\n}\n\nexport default ClTableCelDate\n","<template>\n <td v-tooltip:right=\"tooltip\" v-clipboard=\"full ?? value\" class=\"cl-td-id\">\n {{ value }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelId',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n value: {\n type: String,\n default: 'ABCDEF01'\n },\n full: {\n type: String,\n default: undefined\n }\n },\n computed: {\n tooltip: function (): string {\n return (this.full ?? this.value) + '<br><small>click-to-copy!</small>'\n }\n }\n})\n</script>\n","<template>\n <td v-tooltip:right=\"tooltip\" v-clipboard=\"full ?? value\" class=\"cl-td-id\">\n {{ value }}\n </td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nimport { clVTooltip, clVClipboard } from '@/utils/vue'\n\nexport default defineComponent({\n name: 'ClTableCelId',\n directives: {\n tooltip: clVTooltip,\n clipboard: clVClipboard\n },\n props: {\n value: {\n type: String,\n default: 'ABCDEF01'\n },\n full: {\n type: String,\n default: undefined\n }\n },\n computed: {\n tooltip: function (): string {\n return (this.full ?? this.value) + '<br><small>click-to-copy!</small>'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelId from './template.vue'\n\nClTableCelId.install = (Vue: App) => {\n Vue.component(ClTableCelId.name ?? 'ClNoName', ClTableCelId)\n}\n\nexport default ClTableCelId\n","<template>\n <td class=\"cl-td-links\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelLinks',\n props: {\n content: {\n type: String,\n default: ''\n }\n }\n})\n</script>\n","<template>\n <td class=\"cl-td-links\">{{ content }}<slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelLinks',\n props: {\n content: {\n type: String,\n default: ''\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelLinks from './template.vue'\n\nClTableCelLinks.install = (Vue: App) => {\n Vue.component(ClTableCelLinks.name ?? 'ClNoName', ClTableCelLinks)\n}\n\nexport default ClTableCelLinks\n","<template>\n <td class=\"cl-td-time\"><slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelTime'\n})\n</script>\n","<template>\n <td class=\"cl-td-time\"><slot /></td>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableCelTime'\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelTime from './template.vue'\n\nClTableCelTime.install = (Vue: App) => {\n Vue.component(ClTableCelTime.name ?? 'ClNoName', ClTableCelTime)\n}\n\nexport default ClTableCelTime\n","<template>\n <cl-table-cel-id :value=\"value.substring(0, 8)\" :full=\"value\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: 'ClTableCelUuid',\n props: {\n value: {\n type: String,\n default: '00000000-0000-0000-0000-000000000000'\n }\n }\n})\n</script>\n","<template>\n <cl-table-cel-id :value=\"value.substring(0, 8)\" :full=\"value\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n name: 'ClTableCelUuid',\n props: {\n value: {\n type: String,\n default: '00000000-0000-0000-0000-000000000000'\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableCelUuid from './template.vue'\n\nClTableCelUuid.install = (Vue: App) => {\n Vue.component(ClTableCelUuid.name ?? 'ClNoName', ClTableCelUuid)\n}\n\nexport default ClTableCelUuid\n","<template>\n <tfoot v-if=\"any\" class=\"cl-table-foot-checked\">\n <tr>\n <td class=\"cl-td-links\" colspan=\"100\">\n <small><i class=\"fas fa-share fa-rotate-270 cl-faded\" /></small>\n \n <slot />\n </td>\n </tr>\n </tfoot>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableFootChecked',\n props: {\n checked: {\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n any: function (): boolean {\n for (const key in this.checked) {\n if (this.checked[key]) return true\n }\n return false\n }\n }\n})\n</script>\n","<template>\n <tfoot v-if=\"any\" class=\"cl-table-foot-checked\">\n <tr>\n <td class=\"cl-td-links\" colspan=\"100\">\n <small><i class=\"fas fa-share fa-rotate-270 cl-faded\" /></small>\n \n <slot />\n </td>\n </tr>\n </tfoot>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableFootChecked',\n props: {\n checked: {\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n any: function (): boolean {\n for (const key in this.checked) {\n if (this.checked[key]) return true\n }\n return false\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableFoot from './template.vue'\n\nClTableFoot.install = (Vue: App) => {\n Vue.component(ClTableFoot.name ?? 'ClNoName', ClTableFoot)\n}\n\nexport default ClTableFoot\n","<template>\n <th\n :id=\"$uid\"\n class=\"cl-table-head\"\n :class=\"{\n 'cl-table-head-sort': sorter !== null,\n 'cl-table-head-checkbox': checkbox,\n 'cl-th-links': settings\n }\"\n :width=\"settings ? '1%' : width\"\n >\n <template v-if=\"settings\">\n <button type=\"button\" class=\"cl-btn-ghost\" @click=\"openSettings\" aria-label=\"Configure table\">\n <i class=\"fas fa-cog cl-faded\" v-tooltip:left=\"'Configure table'\" aria-hidden=\"true\" />\n </button>\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n <div v-else-if=\"checkbox\" class=\"form-check text-center\">\n <input\n ref=\"checkbox\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :indeterminate=\"checkState === 'SOME'\"\n @change=\"check()\"\n />\n </div>\n <template v-else>\n <button v-if=\"sorter\" type=\"button\" class=\"cl-btn-ghost\" @click=\"sortCol\">\n <slot /><i\n v-if=\"sorter?.col === col\"\n class=\"fas fa-fw\"\n :class=\"{\n 'fa-sort-up': sorter.order.toUpperCase() === 'ASC',\n 'fa-sort-down': sorter.order.toUpperCase() === 'DESC',\n 'fa-sort': !['ASC', 'DESC'].includes(sorter.order.toUpperCase())\n }\"\n />\n </button>\n <slot v-else />\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n </th>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\nimport * as CL from '@/utils/ui'\nimport type { ClTableSorter } from '@/../types/index'\n\nexport default defineComponent({\n name: 'ClTableHead',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n resize: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: ''\n },\n checkbox: {\n type: Boolean,\n default: false\n },\n initial: {\n type: String,\n default: 'NONE' // SOME, ALL\n },\n sorter: {\n type: Object as PropType<ClTableSorter<Record<string, string>>>,\n default: null\n },\n col: {\n type: Number,\n default: 0\n },\n settings: {\n type: Boolean,\n default: false\n }\n },\n emits: ['sort', 'all', 'none'],\n data () {\n return {\n checkState: this.initial,\n modelValue: this.initial === 'ALL',\n mySorter: this.sorter\n }\n },\n watch: {\n initial: function (newVal: string, oldVal: string) {\n if (newVal !== oldVal) {\n this.checkState = newVal\n this.modelValue = this.checkState === 'ALL'\n }\n }\n },\n mounted () {\n this.$nextTick(() => {\n if (this.mySorter) {\n if (this.mySorter.col === this.col) {\n this.mySorter.sort()\n }\n }\n })\n },\n methods: {\n check () {\n switch (this.checkState) {\n case 'NONE':\n case 'SOME':\n this.checkState = 'ALL'\n this.$emit('all')\n break\n case 'ALL':\n this.checkState = 'NONE'\n this.$emit('none')\n break\n }\n },\n openSettings (event: Event) {\n let element = event?.target as HTMLElement | null\n while (element) {\n if (element.tagName === 'TABLE') {\n CL.clModalShow(`${element.id}-settings`)\n return\n }\n element = element.parentElement\n }\n },\n sortCol () {\n let previous = 'NONE'\n if (this.mySorter.col === this.col) {\n previous = this.mySorter\n ? this.mySorter.order.toUpperCase()\n : this.sorter.order.toUpperCase()\n }\n switch (previous) {\n case 'OFF':\n break\n case 'ASC':\n if (this.mySorter) {\n this.mySorter.set(this.col, 'DESC')\n } else {\n this.$emit('sort', 'DESC')\n }\n break\n case 'DESC':\n default:\n if (this.mySorter) {\n this.mySorter.set(this.col, 'ASC')\n } else {\n this.$emit('sort', 'ASC')\n }\n }\n }\n }\n})\n</script>\n","<template>\n <th\n :id=\"$uid\"\n class=\"cl-table-head\"\n :class=\"{\n 'cl-table-head-sort': sorter !== null,\n 'cl-table-head-checkbox': checkbox,\n 'cl-th-links': settings\n }\"\n :width=\"settings ? '1%' : width\"\n >\n <template v-if=\"settings\">\n <button type=\"button\" class=\"cl-btn-ghost\" @click=\"openSettings\" aria-label=\"Configure table\">\n <i class=\"fas fa-cog cl-faded\" v-tooltip:left=\"'Configure table'\" aria-hidden=\"true\" />\n </button>\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n <div v-else-if=\"checkbox\" class=\"form-check text-center\">\n <input\n ref=\"checkbox\"\n v-model=\"modelValue\"\n class=\"form-check-input\"\n type=\"checkbox\"\n :indeterminate=\"checkState === 'SOME'\"\n @change=\"check()\"\n />\n </div>\n <template v-else>\n <button v-if=\"sorter\" type=\"button\" class=\"cl-btn-ghost\" @click=\"sortCol\">\n <slot /><i\n v-if=\"sorter?.col === col\"\n class=\"fas fa-fw\"\n :class=\"{\n 'fa-sort-up': sorter.order.toUpperCase() === 'ASC',\n 'fa-sort-down': sorter.order.toUpperCase() === 'DESC',\n 'fa-sort': !['ASC', 'DESC'].includes(sorter.order.toUpperCase())\n }\"\n />\n </button>\n <slot v-else />\n <div v-if=\"resize\" class=\"cl-resizer\" />\n </template>\n </th>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport type { PropType } from 'vue'\n\nimport { clVTooltip } from '@/utils/vue'\nimport * as CL from '@/utils/ui'\nimport type { ClTableSorter } from '@/../types/index'\n\nexport default defineComponent({\n name: 'ClTableHead',\n directives: {\n tooltip: clVTooltip\n },\n props: {\n resize: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: ''\n },\n checkbox: {\n type: Boolean,\n default: false\n },\n initial: {\n type: String,\n default: 'NONE' // SOME, ALL\n },\n sorter: {\n type: Object as PropType<ClTableSorter<Record<string, string>>>,\n default: null\n },\n col: {\n type: Number,\n default: 0\n },\n settings: {\n type: Boolean,\n default: false\n }\n },\n emits: ['sort', 'all', 'none'],\n data () {\n return {\n checkState: this.initial,\n modelValue: this.initial === 'ALL',\n mySorter: this.sorter\n }\n },\n watch: {\n initial: function (newVal: string, oldVal: string) {\n if (newVal !== oldVal) {\n this.checkState = newVal\n this.modelValue = this.checkState === 'ALL'\n }\n }\n },\n mounted () {\n this.$nextTick(() => {\n if (this.mySorter) {\n if (this.mySorter.col === this.col) {\n this.mySorter.sort()\n }\n }\n })\n },\n methods: {\n check () {\n switch (this.checkState) {\n case 'NONE':\n case 'SOME':\n this.checkState = 'ALL'\n this.$emit('all')\n break\n case 'ALL':\n this.checkState = 'NONE'\n this.$emit('none')\n break\n }\n },\n openSettings (event: Event) {\n let element = event?.target as HTMLElement | null\n while (element) {\n if (element.tagName === 'TABLE') {\n CL.clModalShow(`${element.id}-settings`)\n return\n }\n element = element.parentElement\n }\n },\n sortCol () {\n let previous = 'NONE'\n if (this.mySorter.col === this.col) {\n previous = this.mySorter\n ? this.mySorter.order.toUpperCase()\n : this.sorter.order.toUpperCase()\n }\n switch (previous) {\n case 'OFF':\n break\n case 'ASC':\n if (this.mySorter) {\n this.mySorter.set(this.col, 'DESC')\n } else {\n this.$emit('sort', 'DESC')\n }\n break\n case 'DESC':\n default:\n if (this.mySorter) {\n this.mySorter.set(this.col, 'ASC')\n } else {\n this.$emit('sort', 'ASC')\n }\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableHead from './template.vue'\n\nClTableHead.install = (Vue: App) => {\n Vue.component(ClTableHead.name ?? 'ClNoName', ClTableHead)\n}\n\nexport default ClTableHead\n","<template>\n <tr :id=\"id\" :class=\"clazz\">\n <slot />\n </tr>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableRow',\n props: {\n id: {\n type: String,\n default: null\n },\n class: {\n type: String,\n default: null\n },\n highlight: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n if (this.highlight) {\n return this.class + ' cl-highlight'\n } else {\n return this.class\n }\n }\n }\n})\n</script>\n","<template>\n <tr :id=\"id\" :class=\"clazz\">\n <slot />\n </tr>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTableRow',\n props: {\n id: {\n type: String,\n default: null\n },\n class: {\n type: String,\n default: null\n },\n highlight: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n clazz: function (): string {\n if (this.highlight) {\n return this.class + ' cl-highlight'\n } else {\n return this.class\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTableRow from './template.vue'\n\nClTableRow.install = (Vue: App) => {\n Vue.component(ClTableRow.name ?? 'ClNoName', ClTableRow)\n}\n\nexport default ClTableRow\n","<template>\n <div class=\"cl-tabs\">\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <input\n v-if=\"slotExists(tab)\"\n :id=\"`tabs-${$uid}-${tab}`\"\n :class=\"`cl-tab-${tab}`\"\n type=\"radio\"\n :name=\"`tabs-${$uid}`\"\n :checked=\"index === tab - 1\"\n @change=\"emit(tab)\"\n />\n </template>\n <ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <li v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab}`\">\n <label :for=\"`tabs-${$uid}-${tab}`\"><slot :name=\"`tabs-${tab}-label`\" /></label>\n </li>\n </template>\n </ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <div v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab} cl-tab-content`\">\n <slot :name=\"`tabs-${tab}-content`\" />\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTabs',\n props: {\n index: {\n type: Number,\n default: 0\n }\n },\n emits: ['tab'],\n data () {\n return {\n tabs: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]\n }\n },\n methods: {\n slotExists (index: number): boolean {\n return this.$slots[`tabs-${index}-label`] !== undefined\n },\n emit (n: number): void {\n this.$emit('tab', n)\n }\n }\n})\n</script>\n","<template>\n <div class=\"cl-tabs\">\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <input\n v-if=\"slotExists(tab)\"\n :id=\"`tabs-${$uid}-${tab}`\"\n :class=\"`cl-tab-${tab}`\"\n type=\"radio\"\n :name=\"`tabs-${$uid}`\"\n :checked=\"index === tab - 1\"\n @change=\"emit(tab)\"\n />\n </template>\n <ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <li v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab}`\">\n <label :for=\"`tabs-${$uid}-${tab}`\"><slot :name=\"`tabs-${tab}-label`\" /></label>\n </li>\n </template>\n </ul>\n <template v-for=\"tab in tabs\" :key=\"tab\">\n <div v-if=\"slotExists(tab)\" :class=\"`cl-tab-${tab} cl-tab-content`\">\n <slot :name=\"`tabs-${tab}-content`\" />\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClTabs',\n props: {\n index: {\n type: Number,\n default: 0\n }\n },\n emits: ['tab'],\n data () {\n return {\n tabs: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]\n }\n },\n methods: {\n slotExists (index: number): boolean {\n return this.$slots[`tabs-${index}-label`] !== undefined\n },\n emit (n: number): void {\n this.$emit('tab', n)\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClTabs from './template.vue'\n\nClTabs.install = (Vue: App) => {\n Vue.component(ClTabs.name ?? 'ClNoName', ClTabs)\n}\n\nexport default ClTabs\n","<template>\n <input\n :id=\"$uid\"\n type=\"checkbox\"\n :class=\"`cl-toggle-checkbox`\"\n :checked=\"modelValue\"\n :disabled=\"enabled ? null : true\"\n @change=\"toggle()\"\n />\n <label :id=\"id\" :class=\"clazz\" :for=\"$uid\" :disabled=\"enabled ? null : true\"\n ><i :class=\"`${iconOn} fa-fw`\" aria-hidden=\"true\" /><i\n :class=\"`${iconOff} fa-fw`\"\n aria-hidden=\"true\"\n />{{ title }}</label\n >\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClToggle',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n modelValue: {\n type: Boolean,\n default: false\n },\n enabled: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: ''\n },\n iconOn: {\n type: String,\n default: 'fas fa-check'\n },\n iconOff: {\n type: String,\n default: 'fas fa-times'\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n clazz: 'cl-badge ' + (this.class ?? '')\n }\n },\n methods: {\n toggle: function (): void {\n // move focus to checkbox, but hide visual focus\n if (this.enabled) {\n const checkbox = document.getElementById((this as any).$uid) as HTMLInputElement // eslint-disable-line @typescript-eslint/no-explicit-any\n if (checkbox) {\n this.$emit('update:modelValue', checkbox.checked)\n checkbox.focus()\n checkbox.blur() // fire blur\n checkbox.focus() // refocus\n }\n }\n }\n }\n})\n</script>\n","<template>\n <input\n :id=\"$uid\"\n type=\"checkbox\"\n :class=\"`cl-toggle-checkbox`\"\n :checked=\"modelValue\"\n :disabled=\"enabled ? null : true\"\n @change=\"toggle()\"\n />\n <label :id=\"id\" :class=\"clazz\" :for=\"$uid\" :disabled=\"enabled ? null : true\"\n ><i :class=\"`${iconOn} fa-fw`\" aria-hidden=\"true\" /><i\n :class=\"`${iconOff} fa-fw`\"\n aria-hidden=\"true\"\n />{{ title }}</label\n >\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'ClToggle',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: undefined\n },\n class: {\n type: String,\n default: undefined\n },\n modelValue: {\n type: Boolean,\n default: false\n },\n enabled: {\n type: Boolean,\n default: true\n },\n title: {\n type: String,\n default: ''\n },\n iconOn: {\n type: String,\n default: 'fas fa-check'\n },\n iconOff: {\n type: String,\n default: 'fas fa-times'\n }\n },\n emits: ['update:modelValue'],\n data () {\n return {\n clazz: 'cl-badge ' + (this.class ?? '')\n }\n },\n methods: {\n toggle: function (): void {\n // move focus to checkbox, but hide visual focus\n if (this.enabled) {\n const checkbox = document.getElementById((this as any).$uid) as HTMLInputElement // eslint-disable-line @typescript-eslint/no-explicit-any\n if (checkbox) {\n this.$emit('update:modelValue', checkbox.checked)\n checkbox.focus()\n checkbox.blur() // fire blur\n checkbox.focus() // refocus\n }\n }\n }\n }\n})\n</script>\n","import type { App } from 'vue'\nimport ClToggle from './template.vue'\n\nClToggle.install = (Vue: App) => {\n Vue.component(ClToggle.name ?? 'ClNoName', ClToggle)\n}\n\nexport default ClToggle\n","export const CONST = {\n COLOR: {\n ASH: '#6d5e5e',\n BERRY: '#6e1c3b',\n BRICK: '#ba4f4f',\n CLAY: '#cfc8c8',\n EGGSHELL: '#fbf9f2',\n HAZE: '#eeece6',\n HAZEDARK: '#333947',\n HONEY: '#dc9404',\n LEAF: '#53965d',\n NIGHT: '#262a35',\n ORCHID: '#b271bf',\n PETROL: '#096174',\n RED: '#fa423c',\n SAND: '#fdf5cf',\n SEA: '#5d9dd1',\n SKY: '#71c0ff',\n STEEL: '#a0a0a0'\n },\n SPACING: {\n HUGE: '48px',\n LARGE: '32px',\n MEDIUM: '24px',\n SMALL: '16px',\n TINY: '8px',\n MICRO: '4px',\n NONE: '0px'\n }\n}\n","// helpers that handle CS data\n\nconst ENV = {\n DEV: 'DEV',\n TEST: 'TEST',\n STAG: 'STAG',\n PROD: 'PROD'\n}\n\nconst SERVICE = {\n CP: 'Content Platform',\n CP_TAGLINE: 'Access the Content Platform, manage, encode and watermark assets',\n CP_URN: 'urn:janus:service:76b6e8558263431d9d766779987d6410',\n CPS: 'Content Platform Staging',\n CPS_TAGLINE: 'Access the Content Platform, manage, encode and watermark assets',\n CPS_URN: 'urn:janus:service:f57f4728d2a54a0d99b77b9bb7e04bf6',\n CS: 'Castlabs hub',\n CS_TAGLINE: 'Manage organizations, plans, downloads',\n CS_URN: 'urn:janus:service:OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO',\n DT: 'DRMtoday',\n DT_TAGLINE: 'Cloud DRM & CAS licensing',\n DT_URN: 'urn:janus:service:79a1092a0be44b1c95a4557b8d3ee2b7',\n DTO: 'DRMtoday Onboard',\n DTO_TAGLINE: 'DRMtoday Onboard',\n DTO_URN: 'urn:janus:service:442f84ee6cc942188cb24486d7208289',\n DTS: 'DRMtoday Staging',\n DTS_TAGLINE: 'Cloud DRM & CAS licensing',\n DTS_URN: 'urn:janus:service:17edeac267d84703ab0ddd7a33d85706',\n PP: 'PRESTOplay',\n PP_TAGLINE: 'Cross-platform video players (via Castlabs hub)',\n PP_URN: 'urn:janus:service:a0682fd65f234a6793c526dc33131bab',\n PP_URN_ANDROID: 'urn:janus:service:95841e63952149408c71c650c9659fb7',\n PP_URN_BROWSER: 'urn:janus:service:852e1377df314c1a80003a9f67b98dfe',\n PP_URN_GSTREAMER: 'urn:janus:service:76b6e8558263431d9d766779987d64c1',\n PP_URN_IOS: 'urn:janus:service:2187beecaae44a01ac7eb353f5095f0f',\n PP_URN_REACTNATIVE: 'urn:janus:service:6efecac3ac04477e9b36d3d14e0ae257',\n PP_URN_WEBRTC: 'urn:janus:service:250402eb2e2d47118422ba4f2334ee54',\n VTK: 'Video Toolkit',\n VTK_TAGLINE: 'Cloud content processing',\n VTK_URN: 'urn:janus:service:a50e21d6a5e246809b636854abfbd34d',\n VTKS: 'Video Toolkit Staging',\n VTKS_TAGLINE: 'Cloud content processing',\n VTKS_URN: 'urn:janus:service:ca5bb34e8f39459796778e74fa097248',\n WM: 'STARDUSTmark',\n WM_TAGLINE: 'Video & image forensic watermarking',\n WM_URN: 'urn:janus:service:76b6e8558263431d9d766779987d64c4'\n}\n\nconst ROLE = {\n CS_READONLY: 'Read-Only',\n CS_READONLY_URN: 'urn:janus:role:b9d0931a01034fa095aa1a18ec303bac',\n\n CS_ADMIN: 'Admin',\n CS_ADMIN_URN: 'urn:janus:role:ab0cc31ad04a4090b41b0e552f7a3742',\n CS_BILLING: 'Billing',\n CS_BILLING_URN: 'urn:janus:role:2f4a76d16c9a47609255a253d873135c',\n CS_REPORTS: 'Reports',\n CS_REPORTS_URN: 'urn:janus:role:076e6514fe1f4d5abf307dc9fee7bbeb',\n\n PP_ADMIN: 'PRESTOplay admin',\n PP_ADMIN_URN: 'urn:janus:role:b79b1a10741f43b2bc0d1302d61b5865',\n PP_USER: 'PRESTOplay user',\n PP_USER_URN: 'urn:janus:role:7f2c7c7ee74d46e8936461d57180a1d3',\n\n DT_MEMBERS: 'Members',\n DT_MEMBERS_URN: 'urn:janus:role:2e5cfd4579d1485ca7e5f8cc97bdfe32',\n DT_SUBORGS: 'Sub-organizations',\n DT_SUBORGS_URN: 'urn:janus:role:2042447e1ae944c5a2bb75c9dd7077f3',\n DT_CONFIGURATION: 'Configuration',\n DT_CONFIGURATION_URN: 'urn:janus:role:07ac6d78216e41528d1b04a0ad737bc6',\n DT_KEYS_DELETE: 'Key delete',\n DT_KEYS_DELETE_URN: 'urn:janus:role:a79f863667944cca89588f69ea9d61dc',\n DT_KEYS_INGEST: 'Key ingest',\n DT_KEYS_INGEST_URN: 'urn:janus:role:08b9f5a98f084dd59d766be7039b504d',\n DT_ASSETS: 'Assets',\n DT_ASSETS_URN: 'urn:janus:role:4a2551570d644c08abb2795ccb8474cc',\n DT_DELIVERIES: 'Deliveries',\n DT_DELIVERIES_URN: 'urn:janus:role:7e23400fa5b84a38bbeca2ee515e5c9d',\n\n DTO_DEVICES: 'Devices',\n DTO_DEVICES_URN: 'urn:janus:role:c4e5556c769f4b23af3e502f9c589511',\n DTO_KEYBOX: 'Keyboxes',\n DTO_KEYBOX_URN: 'urn:janus:role:0658721525624ccc8fa612add5152d03',\n DTO_DOWNLOAD: 'Downloads',\n DTO_DOWNLOAD_URN: 'urn:janus:role:50905ceedf494b5e8d4379c0edce4b00',\n DTO_REPORTS: 'Reports',\n DTO_REPORTS_URN: 'urn:janus:role:50905ceedf494b5e8d4379c0edce4b01',\n DTO_CONFIGURATION: 'Configuration',\n DTO_CONFIGURATION_URN: 'urn:janus:role:50905ceedf494b5e8d4379c0edce4b02',\n\n DTS_MEMBERS: 'Members',\n DTS_MEMBERS_URN: 'urn:janus:role:36f4f90309294ceaa4f94e56953c1726',\n DTS_SUBORGS: 'Sub-organizations',\n DTS_SUBORGS_URN: 'urn:janus:role:471fe9be7e5d46feb6d84dd52e308b71',\n DTS_CONFIGURATION: 'Configuration',\n DTS_CONFIGURATION_URN: 'urn:janus:role:ff16e9fd5acc48e8a9acc078d2b72e7d',\n DTS_KEYS_DELETE: 'Key delete',\n DTS_KEYS_DELETE_URN: 'urn:janus:role:3f8dc55d3dbb4a4e893ba33ced829642',\n DTS_KEYS_INGEST: 'Key ingest',\n DTS_KEYS_INGEST_URN: 'urn:janus:role:471c6826d37f4d3aaa43cb3a3fda63ae',\n DTS_ASSETS: 'Assets',\n DTS_ASSETS_URN: 'urn:janus:role:f7c9335c70f14e4bb15d3f30761b8626',\n DTS_DELIVERIES: 'Deliveries',\n DTS_DELIVERIES_URN: 'urn:janus:role:e79a8f99a96a45238283b3c049e7374b',\n\n VTK_USER: 'Video Toolkit user',\n VTK_USER_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b8b4',\n\n CP_USER: 'Content Platform user',\n CP_USER_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b871',\n\n WM_DEMO: 'Demo',\n WM_DEMO_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b850',\n WM_EXTRACTION: 'Extraction',\n WM_EXTRACTION_URN: 'urn:janus:role:33c9c2001ca14dde9c3b310d0748b851'\n}\n\nconst STATE = {\n UNKNOWN: null,\n ACTIVE: 0,\n PENDING: 1,\n DELETED: 2,\n SUSPENDED: 3\n}\n\nconst LICENSE_STATE = {\n ...STATE,\n APPROVAL_REQUIRED: 4,\n APPROVAL_DENIED: 5,\n APPROVAL_REVOKED: 6\n}\n\nconst PLAN = {\n UNKNOWN: null,\n TRIAL: 0,\n STARTER: 1,\n ENTERPRISE: 2,\n CUSTOM: 3\n}\n\nconst APPS = {\n CP: {\n id: 'CP',\n subtitle: SERVICE.CP_TAGLINE,\n title: SERVICE.CP,\n services: [SERVICE.CP_URN],\n roles: [ROLE.CP_USER_URN],\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://platform.content.castlabs.com/#/o/${oid ?? ''}`,\n `https://platform.content-stag.castlabs.com/#/o/${oid ?? ''}`\n ),\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: false\n },\n\n CPS: {\n id: 'CPS',\n subtitle: SERVICE.CPS_TAGLINE,\n title: SERVICE.CPS,\n services: [SERVICE.CPS_URN],\n roles: [ROLE.CP_USER_URN],\n urlManage: (env, oid) => `https://platform.content-stag.castlabs.com/#/o/${oid ?? ''}`,\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: false\n },\n\n CS: {\n id: 'CS',\n subtitle: SERVICE.CS_TAGLINE,\n title: SERVICE.CS,\n services: [SERVICE.CS_URN],\n roles: [],\n urlManage: (env, oid) => urlCS(env, oid),\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: true\n },\n\n DT: {\n id: 'DT',\n subtitle: SERVICE.DT_TAGLINE,\n title: SERVICE.DT,\n services: [SERVICE.DT_URN],\n roles: [\n ROLE.DT_MEMBERS_URN,\n ROLE.DT_SUBORGS_URN,\n ROLE.DT_CONFIGURATION_URN,\n ROLE.DT_KEYS_DELETE_URN,\n ROLE.DT_KEYS_INGEST_URN,\n ROLE.DT_ASSETS_URN,\n ROLE.DT_DELIVERIES_URN\n ],\n urlManage: (env, oid) =>\n getDevTestUrl(\n env,\n `https://fe.test.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`,\n `https://fe.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/drmtoday'),\n sidenav: true\n },\n\n DTO: {\n id: 'DTO',\n subtitle: SERVICE.DTO_TAGLINE,\n title: SERVICE.DTO,\n services: [SERVICE.DTO_URN],\n roles: [\n ROLE.DTO_DEVICES_URN,\n ROLE.DTO_KEYBOX_URN,\n ROLE.DTO_DOWNLOAD_URN,\n ROLE.DTO_CONFIGURATION_URN,\n ROLE.DTO_REPORTS_URN\n ],\n urlManage: (env, oid) => `https://onboard.castlabs.com/o/${oid ?? ''}/devices`,\n urlPlan: (env, oid) => urlCS(env, oid),\n sidenav: false\n },\n\n DTS: {\n id: 'DTS',\n subtitle: SERVICE.DTS_TAGLINE,\n title: SERVICE.DTS,\n services: [SERVICE.DTS_URN],\n roles: [\n ROLE.DTS_MEMBERS_URN,\n ROLE.DTS_SUBORGS_URN,\n ROLE.DTS_CONFIGURATION_URN,\n ROLE.DTS_KEYS_DELETE_URN,\n ROLE.DTS_KEYS_INGEST_URN,\n ROLE.DTS_ASSETS_URN,\n ROLE.DTS_DELIVERIES_URN\n ],\n urlManage: (env, oid) =>\n getDevTestUrl(\n env,\n `https://fe.test.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`,\n `https://fe.staging.drmtoday.com/dashboard/${oid ? `${oid}/` : ''}index`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/drmtoday'),\n sidenav: false\n },\n\n PP: {\n id: 'PP',\n subtitle: SERVICE.PP_TAGLINE,\n title: SERVICE.PP,\n services: [\n SERVICE.PP_URN,\n SERVICE.PP_URN_ANDROID,\n SERVICE.PP_URN_BROWSER,\n SERVICE.PP_URN_GSTREAMER,\n SERVICE.PP_URN_IOS,\n SERVICE.PP_URN_REACTNATIVE,\n SERVICE.PP_URN_WEBRTC\n ],\n roles: [ROLE.PP_USER_URN, ROLE.PP_ADMIN_URN],\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://account.castlabs.com/o/${oid}/prestoplay`,\n `https://account.test.cs.castlabs.com/o/${oid}/prestoplay`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/prestoplay'),\n sidenav: true\n },\n WM: {\n id: 'WM',\n subtitle: SERVICE.WM_TAGLINE,\n title: SERVICE.WM,\n services: [SERVICE.WM_URN],\n roles: [ROLE.WM_DEMO_URN, ROLE.WM_EXTRACTION_URN],\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://watermark.castlabs.com/#/o/${oid}`,\n `https://demo-stag.fwm.castlabs.com/#/o/${oid}`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/wm'),\n sidenav: true\n },\n\n VTK: {\n id: 'VTK',\n subtitle: SERVICE.VTK_TAGLINE,\n services: [SERVICE.VTK_URN],\n roles: [ROLE.VTK_USER_URN],\n title: SERVICE.VTK,\n urlManage: (env, oid) =>\n getEnvUrl(\n env,\n `https://vtk.castlabs.com/${oid}/jobs/`,\n `https://vtks.castlabs.com/${oid}/jobs/`\n ),\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/vtk'),\n sidenav: true\n },\n\n VTKS: {\n id: 'VTKS',\n subtitle: SERVICE.VTKS_TAGLINE,\n title: SERVICE.VTKS,\n services: [SERVICE.VTKS_URN],\n roles: [ROLE.VTK_USER_URN],\n urlManage: (env, oid) => `https://vtks.castlabs.com/${oid}/jobs/`,\n urlPlan: (env, oid) => urlCS(env, oid, '/plans/vtk'),\n sidenav: false\n }\n}\n\n// ----------------------------------------------------------------------------------------\n\nexport const CS = {\n SERVICE,\n ROLE,\n STATE,\n LICENSE_STATE,\n PLAN,\n APPS\n}\n\n// ----------------------------------------------------------------------------------------\n\nfunction urlCS (env, oid, path) {\n return getDevTestUrl(\n env,\n `https://account.test.cs.castlabs.com/o/${oid ?? ''}${path ?? ''}`,\n `https://account.castlabs.com/o/${oid ?? ''}${path ?? ''}`\n )\n}\n\nfunction getDevTestUrl (env, urlDevTest, urlOther) {\n return getEnvUrl(env, urlDevTest, urlOther, [ENV.DEV, ENV.TEST])\n}\n\nfunction getEnvUrl (env, urlEnv, urlOther, envs = [ENV.PROD]) {\n return envs.includes(env) ? urlEnv : urlOther\n}\n\n// ----------------------------------------------------------------------------------------\n\nfunction csGetBestOrgLicense (membership, sids) {\n // sometimes multiple licenes apply to a service (e.g. PP-android, PP-ios, ...)\n // in that case we choose the license with the highest service level to be used\n // for sidenav link calulation\n let best = null\n for (const sid of sids) {\n const license = csGetOrgLicense(membership, sid)\n if (!license) continue\n if (\n best === null ||\n (best.status === CS.LICENSE_STATE.APPROVAL_REQUIRED &&\n license.status === CS.LICENSE_STATE.ACTIVE) ||\n (best.plan === CS.PLAN.TRIAL && license.plan !== CS.PLAN.TRIAL)\n ) {\n best = license\n }\n }\n return best\n}\n\nfunction csGetOrgLicense (membership, sid) {\n for (const license of membership.organization?.licenses ?? []) {\n if (\n license.service === sid &&\n [CS.LICENSE_STATE.ACTIVE, CS.LICENSE_STATE.APPROVAL_REQUIRED].includes(license.status)\n ) {\n return license\n }\n }\n return null\n}\n\nfunction basic (service) {\n // basic sidenav entry\n return {\n id: service.id,\n title: service.title,\n subtitle: service.subtitle,\n url: '#',\n disabled: false,\n badge: undefined\n }\n}\n\nfunction disabled (service) {\n // sidenav entry in org-unavailable mode\n return {\n ...basic(service),\n disabled: true\n }\n}\n\nfunction subscribed (service, oid, env) {\n // sidenav entry in subscribed mode\n return {\n ...basic(service),\n url: service.urlManage(env, oid)\n }\n}\n\nfunction trial (service, oid, env) {\n // sidenav entry in TRIAL mode\n return {\n ...subscribed(service, oid, env),\n badge: 'Trial'\n }\n}\n\nfunction subscribe (service, oid, env) {\n // sidenav entry in SUBSCRIBE mode\n return {\n ...basic(service),\n url: service.urlPlan(env, oid),\n badge: 'Subscribe'\n }\n}\n\nfunction pending (service, oid, env) {\n // sidenav entry in PENDING mode\n return {\n ...basic(service),\n url: service.urlPlan(env, oid),\n badge: 'Pending'\n }\n}\n\nfunction variant (service, license, oid, env, hasRole) {\n // no license = show subscribe ad\n if (!license) {\n // some items are hidden if there is no license\n if ([APPS.DTS.id, APPS.CPS.id, APPS.VTKS.id].includes(service.id)) return null\n\n // other items we hint the user to subscribe\n return subscribe(service, oid, env)\n }\n\n // pending license = show pending badge\n if ([CS.LICENSE_STATE.APPROVAL_REQUIRED].includes(license.status))\n return pending(service, oid, env)\n\n // trial license = show trial badge\n if (license.plan === CS.PLAN.TRIAL) return trial(service, oid, env)\n\n // any other license and a matching role = manage link\n if (hasRole) return subscribed(service, oid, env)\n\n // license but no role = disabled\n return disabled(service)\n}\n\nfunction csGetNavVariant (membership, service, oid, env) {\n const license = csGetBestOrgLicense(membership, service.services)\n return variant(\n service,\n license,\n oid,\n env,\n !!membership.roles.find(r => service.roles.includes(r.role_urn))\n )\n}\n\nfunction csParseMembership (membership, oid, env) {\n const nav = [subscribed(APPS.CS, oid, env)]\n\n const cps = csGetNavVariant(membership, APPS.CPS, oid, env)\n if (cps) nav.push(cps)\n nav.push(csGetNavVariant(membership, APPS.DT, oid, env))\n const dts = csGetNavVariant(membership, APPS.DTS, oid, env)\n if (dts) nav.push(dts)\n nav.push(csGetNavVariant(membership, APPS.PP, oid, env))\n nav.push(csGetNavVariant(membership, APPS.WM, oid, env))\n nav.push(csGetNavVariant(membership, APPS.VTK, oid, env))\n const vtks = csGetNavVariant(membership, APPS.VTKS, oid, env)\n if (vtks) nav.push(vtks)\n\n return nav\n}\n\n/**\n * Filters and returns services to be shown in the sidenav based on licenses and user roles for a given org id. The expected\n * JSON object corresponds to an memberships property from a CS UserInfo object retrieved via\n * https://auth.castlabs.com/api/v1/userinfo\n * (@see https://auth.castlabs.com/api/v1/docs#tag/User/operation/janus:UserInfo)\n *\n * @param {CsMembership[]} memberships Memberships.\n * @param {string} oid Organization urn.\n * @param {string} env Environment to generate links for (PROD, STAG, TEST, DEV).\n * @returns Array of service navigation objects that the user has access to, in proper order to display in sidenav's service-drawer.\n */\nexport function csGetNav (memberships, oid, env) {\n for (const membership of memberships) {\n if (membership.organization?.organization_urn === oid) {\n return csParseMembership(membership, oid, env)\n }\n }\n\n return [\n // static nav\n subscribed(APPS.CS),\n disabled(APPS.DT),\n disabled(APPS.PP),\n disabled(APPS.WM),\n disabled(APPS.VTK)\n ]\n}\n\n/**\n * Filters membership array of CS API to only contain memberships for a given service and role.\n *\n * @param {CsMembership[]} memberships Memberships.\n * @param {string} rid Role urn (optional).\n * @param {string} sid Service urn (optional).\n * @returns Array of memberships that match sid and rid. If any id was null, it was considered as 'any'.\n */\nexport function csFilterMemberships (memberships, rid, sid) {\n let clone = JSON.parse(JSON.stringify(memberships))\n\n // only keep orgs with licenses for required service\n if (sid) {\n clone = clone.filter(membership =>\n membership.organization.licenses.find(license => license.service === sid)\n )\n }\n\n // only keep orgs with required role\n if (rid) {\n clone = clone.filter(membership => membership.roles.find(role => role.role_urn === rid))\n }\n\n return clone\n}\n\n/**\n * Get the link to the current user's account page in CS.\n *\n * @param {string} env Environment to generate links for (PROD, STAG, TEST, DEV).\n * @returns {string} Full url to account page.\n */\nexport function csGetAccountUrl (env) {\n return getDevTestUrl(\n env,\n 'https://account.test.cs.castlabs.com/account',\n 'https://account.castlabs.com/account'\n )\n}\n","import { CS } from './cs.js'\n\nexport function clGetServices () {\n // static nav items if no CS integration is available\n return [\n // sorted alphabeticaly by title\n CS.APPS.CS,\n CS.APPS.CP,\n CS.APPS.DT,\n CS.APPS.DTS,\n CS.APPS.DTO,\n CS.APPS.PP,\n CS.APPS.WM,\n CS.APPS.VTK\n ]\n}\n\n// compatibility export with previous ui-lib versions\nexport const NAV = CS.APPS\n","const NBSP = '✺' // non-breakable space for searching substrings\n\nlet cache = {}\n\n/**\n * Determine if a string matches our advanced search expression.\n *\n * @param {String} string String to match against (haystack).\n * @param {String} expression String to match for (needle).\n * @param {Boolean} caseSensitive Boolean to turn on/off case sensitive search.\n * @return {boolean} True if string matches expression.\n */\nexport function clMatch (string, expression = '', caseSensitive = false) {\n const tree = cache[expression] ?? _tokenize(_sanitize(expression))\n if (Object.keys(cache).length > 100) cache = {} // clear too big caches\n cache[expression] = tree\n if (caseSensitive) {\n return matchSubtree(string.toLowerCase(), tree, caseSensitive)\n } else {\n return matchSubtree(string, tree, caseSensitive)\n }\n}\n\n// -----------------------------------------------------------------------------\n\nfunction matchSubtree (string, subtree, caseSensitive) {\n if (typeof subtree === 'string') {\n const term = subtree.replaceAll(NBSP, ' ')\n if (term[0] === '-') return !matchSubtree(string, term.substring(1), caseSensitive)\n if (caseSensitive) {\n return string.includes(term)\n } else {\n return string.toLowerCase().includes(term.toLowerCase())\n }\n } else {\n switch (subtree[0]) {\n case '&':\n return matchSubtree(string, subtree[1]) && matchSubtree(string, subtree[2])\n case '|':\n return matchSubtree(string, subtree[1]) || matchSubtree(string, subtree[2])\n default:\n return false // invalid search syntax\n }\n }\n}\n\nexport function _sanitize (expression) {\n // handle substrings/quotes\n const quoted = []\n let quoteMode = false\n for (let i = 0; i < expression.length; i++) {\n if (quoteMode) {\n if (expression[i] === quoteMode) {\n // string end found\n quoteMode = false\n } else {\n // char in substring found\n quoted.push([' '].includes(expression[i]) ? NBSP : expression[i])\n }\n } else {\n if ([\"'\", '\"'].includes(expression[i])) {\n // substring start found\n quoteMode = expression[i]\n } else {\n // regular non-substring character\n quoted.push(expression[i])\n }\n }\n }\n\n // handle remaining whitespace\n const trimmed = quoted.join('').replace(/\\s+/g, ' ').trim()\n if (trimmed.length <= 0) return ''\n\n const token = trimmed.split(' ')\n if (token.length <= 0) return ''\n\n const sanitized = []\n if (!['NOT', '-'].includes(token[0])) sanitized.push(token.shift())\n\n for (let i = 0; i < token.length; i++) {\n switch (token[i]) {\n case 'AND':\n case '&':\n case '&&':\n switch (token[++i]) {\n case 'NOT':\n case '-':\n if (token[i + 1]) {\n sanitized.push('&')\n sanitized.push('-')\n sanitized.push(token[++i])\n }\n break\n case undefined:\n break\n default:\n sanitized.push('&')\n sanitized.push(token[i])\n }\n break\n case 'OR':\n case '|':\n case '||':\n switch (token[++i]) {\n case 'NOT':\n case '-':\n if (token[i + 1]) {\n sanitized.push('|')\n sanitized.push('-')\n sanitized.push(token[++i])\n }\n break\n case undefined:\n break\n default:\n sanitized.push('|')\n sanitized.push(token[i])\n }\n break\n case 'NOT':\n case '-':\n sanitized.push('-')\n sanitized.push(token[++i])\n break\n default:\n sanitized.push('&') // default operation = AND\n sanitized.push(token[i])\n }\n }\n return ` ${sanitized.join(' ')} `.replace(/ - /g, ' -').trim()\n}\n\nexport function _tokenize (expression) {\n const OR = expression.indexOf(' | ')\n if (OR >= 0) {\n return ['|', _tokenize(expression.substring(0, OR)), _tokenize(expression.substring(OR + 3))]\n }\n\n const AND = expression.indexOf(' & ')\n if (AND >= 0) {\n return ['&', _tokenize(expression.substring(0, AND)), _tokenize(expression.substring(AND + 3))]\n }\n\n const SPACE = expression.indexOf(' ')\n if (SPACE >= 0) {\n return [\n '&',\n _tokenize(expression.substring(0, SPACE)),\n _tokenize(expression.substring(SPACE + 1))\n ]\n }\n\n return expression\n}\n","/**\n * uid.js - Provide a this.$uid to all components with an unique component ID.\n */\n\nexport default {\n install: (app) => {\n let id = 0\n app.mixin({\n beforeCreate: function beforeCreate () {\n let obj\n const uid = 'uid-' + id++\n Object.defineProperties(this, (obj = {}, obj.$uid = { get: function get () { return uid } }, obj))\n }\n })\n }\n}\n","/* eslint @typescript-eslint/no-explicit-any: 0 */\n\n// helper methods for ui/vitests\n\nimport uid from '@/../plugins/uid'\n\nimport ClAlert from '@/components/ClAlert'\nimport ClBackCancelOk from '@/components/widget/ClBackCancelOk'\nimport ClCookieBanner from '@/components/widget/ClCookieBanner'\nimport ClCopy from '@/components/text/ClCopy'\nimport ClCreditcardNumber from '@/components/text/ClCreditcardNumber'\nimport ClDropzone from '@/components/ClDropzone'\nimport ClField from '@/components/form/ClField'\nimport ClFieldCheck from '@/components/form/ClFieldCheck'\nimport ClFieldGroup from '@/components/form/ClFieldGroup'\nimport ClHashtag from '@/components/text/ClHashtag'\nimport ClIconotron from '@/components/ClIconotron'\nimport ClInfo from '@/components/ClInfo'\nimport ClLinkExternal from '@/components/text/ClLinkExternal'\nimport ClLorem from '@/components/ClLorem'\nimport ClMailto from '@/components/text/ClMailto'\nimport ClModal from '@/components/modal/ClModal'\nimport ClModalConfirm from '@/components/modal/ClModalConfirm'\nimport ClModalForm from '@/components/modal/ClModalForm'\nimport ClModalOk from '@/components/modal/ClModalOk'\nimport ClNavItemDarkMode from '@/components/navigation/ClNavSide/ClNavItemDarkMode'\nimport ClNavSide from '@/components/navigation/ClNavSide'\nimport ClNavTop from '@/components/navigation/ClNavTop'\nimport ClOrg from '@/components/text/ClOrg'\nimport ClPage from '@/components/widget/ClPage'\nimport ClPagination from '@/components/ClPagination'\nimport ClPlan from '@/components/text/ClPlan'\nimport ClRole from '@/components/text/ClRole'\nimport ClSectionDetails from '@/components/section/ClSectionDetails'\nimport ClSectionForm from '@/components/section/ClSectionForm'\nimport ClSectionHeadline from '@/components/section/ClSectionHeadline'\nimport ClSectionMain from '@/components/section/ClSectionMain'\nimport ClSectionMainSide from '@/components/section/ClSectionMainSide'\nimport ClSpinner from '@/components/ClSpinner'\nimport ClTable from '@/components/table/ClTable'\nimport ClTableCel from '@/components/table/ClTableCel'\nimport ClTableCelActions from '@/components/table/ClTableCel/Actions'\nimport ClTableCelAudit from '@/components/table/ClTableCel/Audit'\nimport ClTableCelBoolean from '@/components/table/ClTableCel/Boolean'\nimport ClTableCelCheckbox from '@/components/table/ClTableCel/Checkbox'\nimport ClTableCelCode from '@/components/table/ClTableCel/Code'\nimport ClTableCelCurrency from '@/components/table/ClTableCel/Currency'\nimport ClTableCelDate from '@/components/table/ClTableCel/Date'\nimport ClTableCelId from '@/components/table/ClTableCel/ID'\nimport ClTableCelLinks from '@/components/table/ClTableCel/Links'\nimport ClTableCelTime from '@/components/table/ClTableCel/Time'\nimport ClTableCelUuid from '@/components/table/ClTableCel/UUID'\nimport ClTableFootChecked from '@/components/table/ClTableFootChecked'\nimport ClTableHead from '@/components/table/ClTableHead'\nimport ClTableRow from '@/components/table/ClTableRow'\nimport ClTabs from '@/components/ClTabs'\nimport ClToggle from '@/components/ClToggle'\n\n/**\n * Assembe all our Vue core components for the vitest mock helper.\n *\n * @return Object containing all Cl* components.\n */\nexport function clGetAllComponents () {\n return {\n ClAlert,\n ClBackCancelOk,\n ClCookieBanner,\n ClCopy,\n ClCreditcardNumber,\n ClDropzone,\n ClField,\n ClFieldCheck,\n ClFieldGroup,\n ClHashtag,\n ClIconotron,\n ClInfo,\n ClLinkExternal,\n ClLorem,\n ClMailto,\n ClModal,\n ClModalConfirm,\n ClModalForm,\n ClModalOk,\n ClNavItemDarkMode,\n ClNavSide,\n ClNavTop,\n ClOrg,\n ClPage,\n ClPagination,\n ClPlan,\n ClRole,\n ClSectionDetails,\n ClSectionForm,\n ClSectionHeadline,\n ClSectionMain,\n ClSectionMainSide,\n ClSpinner,\n ClTable,\n ClTableCel,\n ClTableCelActions,\n ClTableCelAudit,\n ClTableCelBoolean,\n ClTableCelCheckbox,\n ClTableCelCode,\n ClTableCelCurrency,\n ClTableCelDate,\n ClTableCelId,\n ClTableCelLinks,\n ClTableCelTime,\n ClTableCelUuid,\n ClTableFootChecked,\n ClTableHead,\n ClTableRow,\n ClTabs,\n ClToggle\n }\n}\n\nexport const FLECTIONS = [\n /[^a-z]don['`\\s]*t/i,\n /do[\\s]+not/i,\n /[^a-z]won['`\\s]*t/i,\n /will[\\s]+not/i,\n /[^a-z]aren['`\\s]*t/i,\n /are[\\s]+not/i,\n /[^a-z]isn['`\\s]*t/i,\n /is[\\s]+not/i,\n /you['`]*re/i,\n /you[\\s]+are/i,\n /we['`\\s]*re/i,\n /we[\\s]+are/i,\n /we['`]+ll/i,\n /we[\\s]+will/i,\n /[^a-z]shouldn['`\\s]*t/i,\n /should[\\s]+not/i,\n /[^a-z]mustn['`\\s]*t/i,\n /must[\\s]+not/i,\n /[^a-z]didn['`\\s]*t/i,\n /did[\\s]+not/i,\n /[^a-z]wasn['`\\s]*t/i,\n /was[\\s]+not/i,\n /[^a-z]hasn['`\\s]*t/i,\n /has[\\s]+not/i,\n /[^a-z]can['`]+t/i,\n /can[\\s]+not/i,\n /[a-z]n['`]+t/i // catch all non-specific\n]\n\n/**\n * Assembe all our Vue core plugins for the vitest mock helper.\n *\n * @return Array containing all plugins.\n */\nexport function clGetAllPlugins (): [{ install: (app: any) => void }] {\n return [uid]\n}\n\n/**\n * Helper method to patch one object with a (subset) of another. Makes overriding\n * single fields in test-objects easier.\n *\n * @param source Object to patch.\n * @param patches Object that overrides (partially) the source.\n * @returns Patched object, with all fields of patches applied to source.\n */\nexport function clPatch (source: any, patches: any): object {\n const clone = JSON.parse(JSON.stringify(source))\n\n for (const name in patches) {\n if (typeof patches[name] === 'object' && !Array.isArray(patches[name])) {\n clone[name] = clPatch(source[name] ?? {}, patches[name])\n } else {\n clone[name] = patches[name]\n }\n }\n\n return clone\n}\n\n/**\n * Helper method to patch a store object for wrap().\n *\n * @param source Object to patch.\n * @param patches Object that overrides (partially) the source.\n * @returns Object for wrap().\n */\nexport function clPatchStore (source: any, patches: any): object {\n return { store: clPatch(source, patches) }\n}\n","import 'simplebar'\n\nimport ClUI from './components/ClUI.vue'\n\nimport ClAlert from './components/ClAlert'\nimport ClBackCancelOk from './components/widget/ClBackCancelOk'\nimport ClCookieBanner from './components/widget/ClCookieBanner'\nimport ClCopy from './components/text/ClCopy'\nimport ClCreditcardNumber from './components/text/ClCreditcardNumber'\nimport ClDropzone from './components/ClDropzone'\nimport ClField from './components/form/ClField'\nimport ClFieldCheck from './components/form/ClFieldCheck'\nimport ClFieldGroup from './components/form/ClFieldGroup'\nimport ClHashtag from './components/text/ClHashtag'\nimport ClIconotron from './components/ClIconotron'\nimport ClInfo from './components/ClInfo'\nimport ClLinkExternal from './components/text/ClLinkExternal'\nimport ClLorem from './components/ClLorem'\nimport ClMailto from './components/text/ClMailto'\nimport ClMockRouterLink from './components/test/ClMockRouterLink'\nimport ClModal from './components/modal/ClModal'\nimport ClModalConfirm from './components/modal/ClModalConfirm'\nimport ClModalForm from './components/modal/ClModalForm'\nimport ClModalOk from './components/modal/ClModalOk'\nimport ClNavItemDarkMode from './components/navigation/ClNavSide/ClNavItemDarkMode'\nimport ClNavSide from './components/navigation/ClNavSide'\nimport ClNavTop from './components/navigation/ClNavTop'\nimport ClOrg from './components/text/ClOrg'\nimport ClPage from './components/widget/ClPage'\nimport ClPagination from './components/ClPagination'\nimport ClPlan from './components/text/ClPlan'\nimport ClRole from './components/text/ClRole'\nimport ClSectionDetails from './components/section/ClSectionDetails'\nimport ClSectionForm from './components/section/ClSectionForm'\nimport ClSectionHeadline from './components/section/ClSectionHeadline'\nimport ClSectionMain from './components/section/ClSectionMain'\nimport ClSectionMainSide from './components/section/ClSectionMainSide'\nimport ClSpinner from './components/ClSpinner'\nimport ClTable from './components/table/ClTable'\nimport ClTableCel from './components/table/ClTableCel'\nimport ClTableCelActions from './components/table/ClTableCel/Actions'\nimport ClTableCelAudit from './components/table/ClTableCel/Audit'\nimport ClTableCelBoolean from './components/table/ClTableCel/Boolean'\nimport ClTableCelCheckbox from './components/table/ClTableCel/Checkbox'\nimport ClTableCelCode from './components/table/ClTableCel/Code'\nimport ClTableCelCurrency from './components/table/ClTableCel/Currency'\nimport ClTableCelDate from './components/table/ClTableCel/Date'\nimport ClTableCelId from './components/table/ClTableCel/ID'\nimport ClTableCelLinks from './components/table/ClTableCel/Links'\nimport ClTableCelTime from './components/table/ClTableCel/Time'\nimport ClTableCelUuid from './components/table/ClTableCel/UUID'\nimport ClTableFootChecked from './components/table/ClTableFootChecked'\nimport ClTableHead from './components/table/ClTableHead'\nimport ClTableRow from './components/table/ClTableRow'\nimport ClTabs from './components/ClTabs'\nimport ClToggle from './components/ClToggle'\n\nimport type { App } from 'vue'\n\nconst components = {\n ClAlert,\n ClBackCancelOk,\n ClCookieBanner,\n ClCopy,\n ClCreditcardNumber,\n ClDropzone,\n ClField,\n ClFieldCheck,\n ClFieldGroup,\n ClHashtag,\n ClIconotron,\n ClInfo,\n ClLinkExternal,\n ClLorem,\n ClMailto,\n ClModal,\n ClModalConfirm,\n ClModalForm,\n ClModalOk,\n ClNavItemDarkMode,\n ClNavSide,\n ClNavTop,\n ClOrg,\n ClPage,\n ClPagination,\n ClPlan,\n ClRole,\n ClSectionDetails,\n ClSectionForm,\n ClSectionHeadline,\n ClSectionMain,\n ClSectionMainSide,\n ClSpinner,\n ClTable,\n ClTableCel,\n ClTableCelActions,\n ClTableCelAudit,\n ClTableCelBoolean,\n ClTableCelCheckbox,\n ClTableCelCode,\n ClTableCelCurrency,\n ClTableCelDate,\n ClTableCelId,\n ClTableCelLinks,\n ClTableCelTime,\n ClTableCelUuid,\n ClTableFootChecked,\n ClTableHead,\n ClTableRow,\n ClTabs,\n ClToggle,\n\n ClMockRouterLink,\n\n ClUI // keep last\n}\n\nexport function clUi (Vue: App): void {\n // tslixnt:disable-next-line: forin\n for (const component in components) {\n // @ts-expect-error We don’t want to properly import all types just for this...\n Vue.component(components[component].name, components[component])\n }\n}\n\nexport { default as ClAlert } from './components/ClAlert'\nexport { default as ClBackCancelOk } from './components/widget/ClBackCancelOk'\nexport { default as ClCookieBanner } from './components/widget/ClCookieBanner'\nexport { default as ClCopy } from './components/text/ClCopy'\nexport { default as ClCreditcardNumber } from './components/text/ClCreditcardNumber'\nexport { default as ClDropzone } from './components/ClDropzone'\nexport { default as ClField } from './components/form/ClField'\nexport { default as ClFieldCheck } from './components/form/ClFieldCheck'\nexport { default as ClFieldGroup } from './components/form/ClFieldGroup'\nexport { default as ClHashtag } from './components/text/ClHashtag'\nexport { default as ClIconotron } from './components/ClIconotron'\nexport { default as ClInfo } from './components/ClInfo'\nexport { default as ClLinkExternal } from './components/text/ClLinkExternal'\nexport { default as ClLorem } from './components/ClLorem'\nexport { default as ClMailto } from './components/text/ClMailto'\nexport { default as ClMockRouterLink } from './components/test/ClMockRouterLink'\nexport { default as ClModal } from './components/modal/ClModal'\nexport { default as ClModalConfirm } from './components/modal/ClModalConfirm'\nexport { default as ClModalForm } from './components/modal/ClModalForm'\nexport { default as ClModalOk } from './components/modal/ClModalOk'\nexport { default as ClNavItemDarkMode } from './components/navigation/ClNavSide/ClNavItemDarkMode'\nexport { default as ClNavSide } from './components/navigation/ClNavSide'\nexport { default as ClNavTop } from './components/navigation/ClNavTop'\nexport { default as ClOrg } from './components/text/ClOrg'\nexport { default as ClPage } from './components/widget/ClPage'\nexport { default as ClPagination } from './components/ClPagination'\nexport { default as ClPlan } from './components/text/ClPlan'\nexport { default as ClRole } from './components/text/ClRole'\nexport { default as ClSectionDetails } from './components/section/ClSectionDetails'\nexport { default as ClSectionForm } from './components/section/ClSectionForm'\nexport { default as ClSectionHeadline } from './components/section/ClSectionHeadline'\nexport { default as ClSectionMain } from './components/section/ClSectionMain'\nexport { default as ClSectionMainSide } from './components/section/ClSectionMainSide'\nexport { default as ClSpinner } from './components/ClSpinner'\nexport { default as ClTable } from './components/table/ClTable'\nexport { default as ClTableCel } from './components/table/ClTableCel'\nexport { default as ClTableCelActions } from './components/table/ClTableCel/Actions'\nexport { default as ClTableCelAudit } from './components/table/ClTableCel/Audit'\nexport { default as ClTableCelBoolean } from './components/table/ClTableCel/Boolean'\nexport { default as ClTableCelCheckbox } from './components/table/ClTableCel/Checkbox'\nexport { default as ClTableCelCode } from './components/table/ClTableCel/Code'\nexport { default as ClTableCelCurrency } from './components/table/ClTableCel/Currency'\nexport { default as ClTableCelDate } from './components/table/ClTableCel/Date'\nexport { default as ClTableCelId } from './components/table/ClTableCel/ID'\nexport { default as ClTableCelLinks } from './components/table/ClTableCel/Links'\nexport { default as ClTableCelTime } from './components/table/ClTableCel/Time'\nexport { default as ClTableCelUuid } from './components/table/ClTableCel/UUID'\nexport { default as ClTableFootChecked } from './components/table/ClTableFootChecked'\nexport { default as ClTableHead } from './components/table/ClTableHead'\nexport { default as ClTableRow } from './components/table/ClTableRow'\nexport { default as ClTabs } from './components/ClTabs'\nexport { default as ClToggle } from './components/ClToggle'\n\nexport * from '@/utils/const'\nexport * from '@/utils/cs'\nexport * from '@/utils/nav'\nexport * from '@/utils/search'\nexport * from '@/utils/test'\nexport * from '@/utils/ui'\nexport * from '@/utils/vue'\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,22],"mappings":";yoBAyBA,SAAS,EAAS,EAAO,CACvB,IAAI,EAAO,OAAO,EAClB,OAAO,GAAS,OAAS,GAAQ,UAAY,GAAQ,WACvD,CC3BA,IAAI,EAAa,OAAO,QAAU,UAAY,QAAU,OAAO,SAAW,QAAU,OCEhF,EAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxE,EAAO,GAAc,GAAY,SAAS,aAAa,EAAE,ECYzD,EAAM,UAAW,CACnB,OAAO,EAAK,KAAK,IAAI,CACvB,ECnBI,EAAe,KAUnB,SAAS,EAAgB,EAAQ,CAG/B,IAFA,IAAI,EAAQ,EAAO,OAEZ,KAAW,EAAa,KAAK,EAAO,OAAO,CAAK,CAAC,IACxD,OAAO,CACT,CCbA,IAAI,EAAc,OASlB,SAAS,EAAS,EAAQ,CACxB,OAAO,GACH,EAAO,MAAM,EAAG,EAAgB,CAAM,EAAI,CAAC,EAAE,QAAQ,EAAa,EAAE,CAE1E,CCbA,IAAIA,EAAS,EAAK,OCAd,EAAc,OAAO,UAGrB,EAAiB,EAAY,eAO7BC,EAAuB,EAAY,SAGnCC,EAAiBC,EAASA,EAAO,YAAc,IAAA,GASnD,SAAS,EAAU,EAAO,CACxB,IAAI,EAAQ,EAAe,KAAK,EAAOD,CAAc,EACjD,EAAM,EAAMA,GAEhB,GAAI,CACF,EAAMA,GAAkB,IAAA,GACxB,IAAI,EAAW,EACjB,MAAY,CAAC,CAEb,IAAI,EAASD,EAAqB,KAAK,CAAK,EAQ5C,OAPI,IACE,EACF,EAAMC,GAAkB,EAExB,OAAO,EAAMA,IAGV,CACT,CCnCA,IAAI,GAPc,OAAO,UAOc,SASvC,SAAS,GAAe,EAAO,CAC7B,OAAO,GAAqB,KAAK,CAAK,CACxC,CCdA,IAAI,GAAU,gBACV,GAAe,qBAGf,EAAiBE,EAASA,EAAO,YAAc,IAAA,GASnD,SAAS,EAAW,EAAO,CAIzB,OAHI,GAAS,KACJ,IAAU,IAAA,GAAY,GAAe,GAEtC,GAAkB,KAAkB,OAAO,CAAK,EACpD,EAAU,CAAK,EACf,GAAe,CAAK,CAC1B,CCDA,SAAS,GAAa,EAAO,CAC3B,OAAwB,OAAO,GAAS,YAAjC,CACT,CCtBA,IAAI,GAAY,kBAmBhB,SAAS,EAAS,EAAO,CACvB,OAAO,OAAO,GAAS,UACpB,GAAa,CAAK,GAAK,EAAW,CAAK,GAAK,EACjD,CCrBA,IAAI,GAAM,IAGN,GAAa,qBAGb,GAAa,aAGb,GAAY,cAGZ,GAAe,SAyBnB,SAAS,EAAS,EAAO,CACvB,GAAI,OAAO,GAAS,SAClB,OAAO,EAET,GAAI,EAAS,CAAK,EAChB,OAAO,GAET,GAAI,EAAS,CAAK,EAAG,CACnB,IAAI,EAAQ,OAAO,EAAM,SAAW,WAAa,EAAM,QAAQ,EAAI,EACnE,EAAQ,EAAS,CAAK,EAAK,EAAQ,GAAM,CAC3C,CACA,GAAI,OAAO,GAAS,SAClB,OAAO,IAAU,EAAI,EAAQ,CAAC,EAEhC,EAAQ,EAAS,CAAK,EACtB,IAAI,EAAW,GAAW,KAAK,CAAK,EACpC,OAAQ,GAAY,GAAU,KAAK,CAAK,EACpC,GAAa,EAAM,MAAM,CAAC,EAAG,EAAW,EAAI,CAAC,EAC5C,GAAW,KAAK,CAAK,EAAI,GAAM,CAAC,CACvC,CCxDA,IAAIC,GAAkB,sBAGlB,EAAY,KAAK,IACjB,GAAY,KAAK,IAwDrB,SAAS,GAAS,EAAM,EAAM,EAAS,CACrC,IAAI,EACA,EACA,EACA,EACA,EACA,EACA,EAAiB,EACjB,EAAU,GACV,EAAS,GACT,EAAW,GAEf,GAAI,OAAO,GAAQ,WACjB,MAAU,UAAUA,EAAe,EAErC,EAAO,EAAS,CAAI,GAAK,EACrB,EAAS,CAAO,IAClB,EAAU,CAAC,CAAC,EAAQ,QACpB,EAAS,YAAa,EACtB,EAAU,EAAS,EAAU,EAAS,EAAQ,OAAO,GAAK,EAAG,CAAI,EAAI,EACrE,EAAW,aAAc,EAAU,CAAC,CAAC,EAAQ,SAAW,GAG1D,SAAS,EAAW,EAAM,CACxB,IAAI,EAAO,EACP,EAAU,EAKd,MAHA,GAAW,EAAW,IAAA,GACtB,EAAiB,EACjB,EAAS,EAAK,MAAM,EAAS,CAAI,EAC1B,CACT,CAEA,SAAS,EAAY,EAAM,CAMzB,MAJA,GAAiB,EAEjB,EAAU,WAAW,EAAc,CAAI,EAEhC,EAAU,EAAW,CAAI,EAAI,CACtC,CAEA,SAAS,EAAc,EAAM,CAC3B,IAAI,EAAoB,EAAO,EAC3B,EAAsB,EAAO,EAC7B,EAAc,EAAO,EAEzB,OAAO,EACH,GAAU,EAAa,EAAU,CAAmB,EACpD,CACN,CAEA,SAAS,EAAa,EAAM,CAC1B,IAAI,EAAoB,EAAO,EAC3B,EAAsB,EAAO,EAKjC,OAAQ,IAAiB,IAAA,IAAc,GAAqB,GACzD,EAAoB,GAAO,GAAU,GAAuB,CACjE,CAEA,SAAS,GAAe,CACtB,IAAI,EAAO,EAAI,EACf,GAAI,EAAa,CAAI,EACnB,OAAO,EAAa,CAAI,EAG1B,EAAU,WAAW,EAAc,EAAc,CAAI,CAAC,CACxD,CAEA,SAAS,EAAa,EAAM,CAS1B,MARA,GAAU,IAAA,GAIN,GAAY,EACP,EAAW,CAAI,GAExB,EAAW,EAAW,IAAA,GACf,EACT,CAEA,SAAS,GAAS,CACZ,IAAY,IAAA,IACd,aAAa,CAAO,EAEtB,EAAiB,EACjB,EAAW,EAAe,EAAW,EAAU,IAAA,EACjD,CAEA,SAAS,GAAQ,CACf,OAAO,IAAY,IAAA,GAAY,EAAS,EAAa,EAAI,CAAC,CAC5D,CAEA,SAAS,GAAY,CACnB,IAAI,EAAO,EAAI,EACX,EAAa,EAAa,CAAI,EAMlC,GAJA,EAAW,UACX,EAAW,KACX,EAAe,EAEX,EAAY,CACd,GAAI,IAAY,IAAA,GACd,OAAO,EAAY,CAAY,EAEjC,GAAI,EAIF,OAFA,aAAa,CAAO,EACpB,EAAU,WAAW,EAAc,CAAI,EAChC,EAAW,CAAY,CAElC,CAIA,OAHI,IAAY,IAAA,KACd,EAAU,WAAW,EAAc,CAAI,GAElC,CACT,CAGA,MAFA,GAAU,OAAS,EACnB,EAAU,MAAQ,EACX,CACT,CCxLA,IAAI,GAAkB,sBA8CtB,SAAS,GAAS,EAAM,EAAM,EAAS,CACrC,IAAI,EAAU,GACV,EAAW,GAEf,GAAI,OAAO,GAAQ,WACjB,MAAU,UAAU,EAAe,EAMrC,OAJI,EAAS,CAAO,IAClB,EAAU,YAAa,EAAU,CAAC,CAAC,EAAQ,QAAU,EACrD,EAAW,aAAc,EAAU,CAAC,CAAC,EAAQ,SAAW,GAEnD,GAAS,EAAM,EAAM,CAC1B,QAAW,EACX,QAAW,EACX,SAAY,CACd,CAAC,CACH,CCvCA,IAAI,EAAW,UAAW,CAQtB,MAPA,GAAW,OAAO,QAAU,SAAkB,EAAG,CAC7C,IAAK,IAAI,EAAG,EAAI,EAAG,EAAI,UAAU,OAAQ,EAAI,EAAG,IAE5C,IAAK,IAAI,IADT,GAAI,UAAU,GACA,EAAO,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,IAAG,EAAE,GAAK,EAAE,IAE9E,OAAO,CACX,EACO,EAAS,MAAM,KAAM,SAAS,CACzC,EAEA,SAAS,GAAmB,EAAS,CAMjC,MALI,CAAC,GACD,CAAC,EAAQ,eACT,CAAC,EAAQ,cAAc,YAChB,OAEJ,EAAQ,cAAc,WACjC,CACA,SAAS,GAAqB,EAAS,CAInC,MAHI,CAAC,GAAW,CAAC,EAAQ,cACd,SAEJ,EAAQ,aACnB,CAEA,IAAI,GAAe,SAAU,EAAK,CAsB9B,OApBc,MAAM,UAAU,OAAO,KAAK,EAAK,SAAU,EAAK,EAAW,CACrE,IAAI,EAAS,EAAU,KAAK,MAAM,qBAAqB,EACvD,GAAI,EAAQ,CACR,IAAI,EAAM,EAAO,GAAG,QAAQ,UAAW,SAAU,EAAG,EAAK,CAAE,OAAO,EAAI,YAAY,CAAG,CAAC,EACtF,OAAQ,EAAU,MAAlB,CACI,IAAK,OACD,EAAI,GAAO,GACX,MACJ,IAAK,QACD,EAAI,GAAO,GACX,MACJ,KAAK,IAAA,GACD,EAAI,GAAO,GACX,MACJ,QACI,EAAI,GAAO,EAAU,KAC7B,CACJ,CACA,OAAO,CACX,EAAG,CAAS,CACC,CACjB,EACA,SAAS,GAAa,EAAI,EAAS,CAC/B,IAAI,EACC,IAEJ,EAAK,EAAG,WAAW,IAAI,MAAM,EAAI,EAAQ,MAAM,GAAG,CAAC,CACxD,CACA,SAAS,GAAgB,EAAI,EAAS,CAC7B,GAEL,EAAQ,MAAM,GAAG,EAAE,QAAQ,SAAU,EAAW,CAC5C,EAAG,UAAU,OAAO,CAAS,CACjC,CAAC,CACL,CACA,SAAS,GAAoB,EAAY,CACrC,MAAO,IAAW,EAAW,MAAM,GAAG,EAAE,KAAK,GAAG,GACpD,CACA,IAAIC,GAAY,CAAC,EAAE,OAAO,OAAW,KACjC,OAAO,UACP,OAAO,SAAS,eAEhB,GAAuB,OAAO,OAAO,CACrC,UAAW,KACX,WAAY,GACZ,UAAWA,GACX,kBAAmB,GACnB,mBAAoB,GACpB,iBAAkB,GAClB,WAAY,GACZ,cAAe,EACnB,CAAC,EAEG,GAAuB,KACvB,GAAyB,KACzBA,IACA,OAAO,iBAAiB,SAAU,UAAY,CACtC,KAA2B,OAAO,mBAClC,GAAyB,OAAO,iBAChC,GAAuB,KAE/B,CAAC,EAEL,SAAS,IAAiB,CACtB,GAAI,KAAyB,KAAM,CAC/B,GAAI,OAAO,SAAa,IAEpB,MADA,IAAuB,EAChB,GAEX,IAAI,EAAO,SAAS,KAChB,EAAM,SAAS,cAAc,KAAK,EACtC,EAAI,UAAU,IAAI,0BAA0B,EAC5C,EAAK,YAAY,CAAG,EACpB,IAAI,EAAQ,EAAI,sBAAsB,EAAE,MACxC,EAAK,YAAY,CAAG,EACpB,GAAuB,CAC3B,CACA,OAAO,EACX,CAEA,IAAI,EAAmB,GAAoB,GAAqB,GAAsBC,GAAa,GAAcC,EAAa,GAAc,EAAgB,GAAiB,EAAoB,GAC7L,GAA+B,UAAY,CAC3C,SAAS,EAAc,EAAS,EAAS,CACjC,IAAY,IAAK,KAAK,EAAU,CAAC,GACrC,IAAI,EAAQ,KAmQZ,GAlQA,KAAK,qBAAuB,KAC5B,KAAK,kBAAoB,GACzB,KAAK,gBAAkB,IACvB,KAAK,YAAc,GACnB,KAAK,gBAAkB,GACvB,KAAK,WAAa,GAClB,KAAK,eAAiB,GACtB,KAAK,eAAiB,GACtB,KAAK,UAAY,KACjB,KAAK,iBAAmB,KACxB,KAAK,UAAY,KACjB,KAAK,SAAW,KAChB,KAAK,OAAS,KACd,KAAK,cAAgB,KACrB,KAAK,4BAA8B,KACnC,KAAK,qBAAuB,KAC5B,KAAK,WAAa,KAClB,KAAK,eAAiB,EACtB,KAAK,eAAiB,KACtB,KAAK,iBAAmB,KACxB,KAAK,SAAW,KAChB,KAAK,MAAQ,KACb,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,YAAc,UAAY,CAAE,EACjC,KAAK,eAAiB,UAAY,CAAE,EACpC,KAAK,gBAAkB,UAAY,CAAE,EACrC,KAAK,eAAiB,UAAY,CAAE,EAIpC,KAAK,SAAW,UAAY,CACxB,IAAI,EAAW,EAAiB,EAAM,EAAE,EACxC,AAEI,EAAM,kBADN,EAAS,sBAAsB,EAAM,OAAO,EACrB,IAE3B,AAEI,EAAM,kBADN,EAAS,sBAAsB,EAAM,OAAO,EACrB,IAEtB,EAAM,cACP,EAAM,YAAc,GACpB,EAAW,EAAM,GAAI,EAAM,WAAW,SAAS,GAEnD,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,EACvB,EAAM,gBAAgB,CAC1B,EACA,KAAK,QAAU,UAAY,CACnB,EAAM,KAAK,EAAE,eACb,EAAM,kBAAkB,GAAG,EAE/B,EAAM,eAAiB,EAC3B,EACA,KAAK,QAAU,UAAY,CACnB,EAAM,KAAK,EAAE,eACb,EAAM,kBAAkB,GAAG,EAE/B,EAAM,eAAiB,EAC3B,EACA,KAAK,iBAAmB,UAAY,CAChC,EAAc,EAAM,GAAI,EAAM,WAAW,SAAS,EAC9C,EAAM,QAAQ,WACd,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,GAE3B,EAAM,YAAc,EACxB,EACA,KAAK,aAAe,UAAY,CAC5B,AAII,EAAM,mBAHN,EAAW,EAAM,GAAI,EAAM,WAAW,YAAY,EAClD,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,EACC,IAE5B,EAAM,eAAe,CACzB,EACA,KAAK,gBAAkB,UAAY,CAC/B,EAAc,EAAM,GAAI,EAAM,WAAW,YAAY,EACjD,EAAM,QAAQ,WACd,EAAM,cAAc,GAAG,EACvB,EAAM,cAAc,GAAG,GAE3B,EAAM,gBAAkB,EAC5B,EACA,KAAK,aAAe,SAAU,EAAG,CAC7B,EAAM,OAAS,EAAE,QACjB,EAAM,OAAS,EAAE,SACb,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,mBAAmB,GAAG,GAE5B,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,mBAAmB,GAAG,CAEpC,EACA,KAAK,aAAe,UAAY,CAC5B,EAAM,YAAY,OAAO,GACrB,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,oBAAoB,GAAG,GAE7B,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,eAC3C,EAAM,oBAAoB,GAAG,EAEjC,EAAM,OAAS,GACf,EAAM,OAAS,EACnB,EACA,KAAK,gBAAkB,UAAY,CAE/B,EAAM,eAAiB,EAAM,kBAAkB,EAC/C,EAAM,oBAAoB,CAC9B,EACA,KAAK,eAAiB,SAAU,EAAG,CAC3B,MAAC,EAAM,KAAK,EAAE,MAAM,IACpB,CAAC,EAAM,KAAK,EAAE,MAAM,IACpB,CAAC,EAAM,KAAK,EAAE,UAAU,IACxB,CAAC,EAAM,KAAK,EAAE,UAAU,IAE5B,KAAI,EAAsB,EAC1B,EAAM,KAAK,EAAE,MAAM,KAAO,EAAM,KAAK,EAAE,MAAM,GAAG,sBAAsB,EACtE,EAAM,KAAK,EAAE,MAAM,KAAO,EAAM,KAAK,EAAE,MAAM,GAAG,sBAAsB,GAClE,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,gBAC3C,EAAuB,EAAM,eAAe,EAAM,KAAK,EAAE,MAAM,IAAI,IAEnE,EAAM,KAAK,EAAE,eAAiB,EAAM,KAAK,EAAE,gBAC3C,EAAuB,EAAM,eAAe,EAAM,KAAK,EAAE,MAAM,IAAI,IAGnE,GAAwB,KAExB,EAAE,gBAAgB,EACd,EAAE,OAAS,eAAiB,EAAE,cAAgB,UAC1C,IACA,EAAM,KAAK,EAAE,UAAU,KACnB,EAAM,KAAK,EAAE,UAAU,GAAG,sBAAsB,EAChD,EAAM,eAAe,EAAM,KAAK,EAAE,UAAU,IAAI,EAChD,EAAM,YAAY,EAAG,GAAG,EAGxB,EAAM,aAAa,EAAG,GAAG,GAG7B,IACA,EAAM,KAAK,EAAE,UAAU,KACnB,EAAM,KAAK,EAAE,UAAU,GAAG,sBAAsB,EAChD,EAAM,eAAe,EAAM,KAAK,EAAE,UAAU,IAAI,EAChD,EAAM,YAAY,EAAG,GAAG,EAGxB,EAAM,aAAa,EAAG,GAAG,IA/Bf,CAoC9B,EAIA,KAAK,KAAO,SAAU,EAAG,CAEjB,MAAC,EAAM,aAAe,CAAC,EAAM,kBAEjC,KAAI,EACA,EAAQ,EAAM,KAAK,EAAM,aAAa,MACtC,EAAwB,EAAM,OAA8C,EAAM,KAAK,EAAM,aAAa,WAA4C,EACtJ,EAAY,EAAM,KAAK,EAAM,aAAa,UAC1C,EAA0B,EAAM,mBAA0D,EAAM,KAAK,EAAM,aAAa,iBAAkD,EAC1K,EAAW,SAAqB,EAAM,WAAkD,EAAM,KAAK,EAAM,aAAa,WAA4C,MAAO,EAAE,EAC/K,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,AAII,EAJA,EAAM,cAAgB,IACR,EAAE,MAGF,EAAE,MAGpB,IAAI,EAAU,GACG,EAAM,OAA8C,EAAM,KAAK,EAAM,aAAa,aAA8C,GAC7I,EAAM,KAAK,EAAM,aAAa,WAClC,EACI,EAAM,cAAgB,KAAO,EAAM,OAChB,EAAM,OAA8C,EAAM,KAAK,EAAM,aAAa,WAA4C,GACzI,EAAU,KACV,EACF,EAIV,IAAI,EAFW,GAAW,EAAY,EAAU,OAEpB,EAAc,GAEtC,EAAM,cAAgB,KAAO,EAAM,QACnC,EAAmB,EAAc,cAAc,GAA2C,sBACpF,CAAC,EACD,GAEV,EAAM,iBAAiB,EAAM,KAAK,EAAM,aAAa,kBACjD,CAnCA,CAoCR,EAIA,KAAK,UAAY,SAAU,EAAG,CAC1B,EAAM,WAAa,GACnB,IAAI,EAAa,GAAmB,EAAM,EAAE,EACxC,EAAW,EAAiB,EAAM,EAAE,EACxC,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,EAAc,EAAM,GAAI,EAAM,WAAW,QAAQ,EACjD,EAAM,gBAAgB,EACtB,EAAW,oBAAoB,YAAa,EAAM,KAAM,EAAI,EAC5D,EAAW,oBAAoB,UAAW,EAAM,UAAW,EAAI,EAC/D,EAAM,qBAAuB,EAAS,WAAW,UAAY,CAGzD,EAAW,oBAAoB,QAAS,EAAM,aAAc,EAAI,EAChE,EAAW,oBAAoB,WAAY,EAAM,aAAc,EAAI,EACnE,EAAM,qBAAuB,IACjC,CAAC,CACL,EAIA,KAAK,aAAe,SAAU,EAAG,CAC7B,EAAE,eAAe,EACjB,EAAE,gBAAgB,CACtB,EACA,KAAK,GAAK,EACV,KAAK,QAAU,EAAS,EAAS,CAAC,EAAG,EAAc,cAAc,EAAG,CAAO,EAC3E,KAAK,WAAa,EAAS,EAAS,CAAC,EAAG,EAAc,eAAe,UAAU,EAAG,EAAQ,UAAU,EACpG,KAAK,KAAO,CACR,EAAG,CACC,iBAAkB,aAClB,SAAU,QACV,eAAgB,cAChB,eAAgB,cAChB,WAAY,OACZ,aAAc,YACd,WAAY,EACZ,cAAe,GACf,aAAc,GACd,MAAO,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,EAC5D,UAAW,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,CACpE,EACA,EAAG,CACC,iBAAkB,YAClB,SAAU,SACV,eAAgB,eAChB,eAAgB,eAChB,WAAY,MACZ,aAAc,YACd,WAAY,EACZ,cAAe,GACf,aAAc,GACd,MAAO,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,EAC5D,UAAW,CAAE,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,UAAW,EAAM,CACpE,CACJ,EACI,OAAO,KAAK,IAAO,UAAY,CAAC,KAAK,GAAG,SACxC,MAAU,MAAM,mEAA0E,KAAK,IAAG,EAEtG,KAAK,YAAc,GAAS,KAAK,aAAc,EAAE,EACjD,KAAK,eAAiB,GAAS,KAAK,gBAAiB,GAAI,CAAE,QAAS,EAAK,CAAC,EAC1E,KAAK,gBAAkB,GAAS,KAAK,iBAAkB,KAAK,eAAe,EAC3E,KAAK,eAAiB,GAAS,KAAK,gBAAiB,KAAK,eAAe,EACzE,KAAK,KAAK,CACd,CAugBA,MAhgBA,GAAc,cAAgB,UAAY,CACtC,GAAI,EAAc,WACd,OAAO,EAAc,WAEzB,IAAI,EAAW,SAAS,cAAc,KAAK,EAC3C,EAAS,UACL,gEACJ,IAAI,EAAmB,EAAS,kBAC5B,EAAa,GAAqF,kBACtG,GAAI,CAAC,EACD,OAAO,KACX,SAAS,KAAK,YAAY,CAAgB,EAC1C,EAAiB,WAAa,EAC9B,IAAI,EAAuB,EAAc,UAAU,CAAgB,EAC/D,EAAmB,EAAc,UAAU,CAAU,EACzD,EAAiB,WAAa,KAC9B,IAAI,EAA8B,EAAc,UAAU,CAAU,EAQpE,OAPA,SAAS,KAAK,YAAY,CAAgB,EAC1C,EAAc,WAAa,CAEvB,qBAAsB,EAAqB,OAAS,EAAiB,KAErE,sBAAuB,EAAiB,OAAS,EAA4B,IACjF,EACO,EAAc,UACzB,EACA,EAAc,UAAU,kBAAoB,UAAY,CAEpD,GAAI,CAUI,OARC,KAAK,kBACN,iBAAiB,KAAK,iBAAkB,qBAAqB,EACxD,UAAY,QACjB,mBAAoB,SAAS,gBAAgB,OAC7C,uBAAwB,SAAS,gBAAgB,MAC1C,EAGA,GAAe,CAE9B,MACU,CACN,OAAO,GAAe,CAC1B,CACJ,EACA,EAAc,UAAY,SAAU,EAAI,CACpC,IAAI,EAAO,EAAG,sBAAsB,EAChC,EAAa,GAAmB,CAAE,EAClC,EAAW,EAAiB,CAAE,EAClC,MAAO,CACH,IAAK,EAAK,KACL,EAAS,aAAe,EAAW,gBAAgB,WACxD,KAAM,EAAK,MACN,EAAS,aAAe,EAAW,gBAAgB,WAC5D,CACJ,EACA,EAAc,UAAU,KAAO,UAAY,CAEnCF,KACA,KAAK,QAAQ,EACb,KAAK,WAAa,EAAc,cAAc,EAC9C,KAAK,eAAiB,KAAK,kBAAkB,EAC7C,KAAK,YAAY,EACjB,KAAK,cAAc,EAE3B,EACA,EAAc,UAAU,QAAU,UAAY,CAG1C,KAAK,UAAY,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,OAAO,CAAC,EACjF,KAAK,iBACD,KAAK,QAAQ,gBACT,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,cAAc,CAAC,EAC/E,KAAK,UACD,KAAK,QAAQ,aACT,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,SAAS,CAAC,EAC1E,KAAK,SAAW,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,MAAM,CAAC,EAC/E,KAAK,OAAS,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,IAAI,CAAC,EAC3E,KAAK,cAAgB,KAAK,UAAU,KAAK,UAAW,EAAkB,KAAK,WAAW,WAAW,CAAC,EAClG,KAAK,4BAA8B,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,2BAA2B,CAAC,EACvH,KAAK,qBAAuB,KAAK,GAAG,cAAc,EAAkB,KAAK,WAAW,oBAAoB,CAAC,EACzG,KAAK,KAAK,EAAE,MAAM,GAAK,KAAK,UAAU,KAAK,GAAI,GAAU,EAAkB,KAAK,WAAW,KAAK,IAAU,EAAkB,KAAK,WAAW,UAAU,GAAE,EACxJ,KAAK,KAAK,EAAE,MAAM,GAAK,KAAK,UAAU,KAAK,GAAI,GAAU,EAAkB,KAAK,WAAW,KAAK,IAAU,EAAkB,KAAK,WAAW,QAAQ,GAAE,EACtJ,KAAK,KAAK,EAAE,UAAU,GACX,KAAK,KAAK,EAAE,MAAM,IAA4C,cAAc,EAAkB,KAAK,WAAW,SAAS,CAAC,GAAM,KACzI,KAAK,KAAK,EAAE,UAAU,GACX,KAAK,KAAK,EAAE,MAAM,IAA4C,cAAc,EAAkB,KAAK,WAAW,SAAS,CAAC,GAAM,KACpI,KAAK,QAAQ,WACd,EAAW,KAAK,KAAK,EAAE,UAAU,GAAI,KAAK,WAAW,OAAO,EAC5D,EAAW,KAAK,KAAK,EAAE,UAAU,GAAI,KAAK,WAAW,OAAO,EAEpE,EACA,EAAc,UAAU,cAAgB,UAAY,CAChD,IAAI,EAAQ,KACR,EACA,EAAW,EAAiB,KAAK,EAAE,EAEvC,QAAK,GAAG,iBAAiB,aAAc,KAAK,YAAY,EACxD,KAAK,GAAG,iBAAiB,cAAe,KAAK,eAAgB,EAAI,EACjE,KAAK,GAAG,iBAAiB,YAAa,KAAK,WAAW,EACtD,KAAK,GAAG,iBAAiB,aAAc,KAAK,YAAY,GACvD,EAAK,KAAK,mBAAsB,MAAiC,EAAG,iBAAiB,SAAU,KAAK,QAAQ,EAE7G,EAAS,iBAAiB,SAAU,KAAK,cAAc,EAClD,KAAK,UAEV,IAAI,OAAO,eAAgB,CAEvB,IAAI,EAA0B,GAC1B,EAAiB,EAAS,gBAAkB,eAChD,KAAK,eAAiB,IAAI,EAAe,UAAY,CAC5C,GAEL,EAAS,sBAAsB,UAAY,CACvC,EAAM,YAAY,CACtB,CAAC,CACL,CAAC,EACD,KAAK,eAAe,QAAQ,KAAK,EAAE,EACnC,KAAK,eAAe,QAAQ,KAAK,SAAS,EAC1C,EAAS,sBAAsB,UAAY,CACvC,EAA0B,EAC9B,CAAC,CACL,CAEA,KAAK,iBAAmB,IAAI,EAAS,iBAAiB,UAAY,CAC9D,EAAS,sBAAsB,UAAY,CACvC,EAAM,YAAY,CACtB,CAAC,CACL,CAAC,EACD,KAAK,iBAAiB,QAAQ,KAAK,UAAW,CAC1C,UAAW,GACX,QAAS,GACT,cAAe,EACnB,CAAC,CAXD,CAYJ,EACA,EAAc,UAAU,YAAc,UAAY,CAC1C,MAAC,KAAK,sBACN,CAAC,KAAK,WACN,CAAC,KAAK,kBACN,CAAC,KAAK,WACN,CAAC,KAAK,eAEV,KAAI,EAAW,EAAiB,KAAK,EAAE,EACvC,KAAK,SAAW,EAAS,iBAAiB,KAAK,EAAE,EACjD,KAAK,MAAQ,KAAK,SAAS,YAAc,MACzC,IAAI,EAAuB,KAAK,UAAU,YACtC,EAAe,KAAK,qBAAqB,cAAgB,EACzD,EAAc,KAAK,qBAAqB,aAAe,GAAK,EAAuB,EACnF,EAA8B,KAAK,iBAAiB,YACpD,EAAc,KAAK,SAAS,UAC5B,EAAc,KAAK,SAAS,UAChC,KAAK,UAAU,MAAM,QAAU,GAAU,KAAK,SAAS,cAAwB,KAAK,SAAS,gBAA0B,KAAK,SAAS,iBAA2B,KAAK,SAAS,cAC9K,KAAK,UAAU,MAAM,OAAS,IAAW,KAAK,SAAS,eAAyB,KAAK,SAAS,iBAA2B,KAAK,SAAS,kBAA4B,KAAK,SAAS,cACjL,IAAI,EAAwB,KAAK,UAAU,aACvC,EAAuB,KAAK,UAAU,YAC1C,KAAK,iBAAiB,MAAM,OAAS,EAAe,OAAS,OAE7D,KAAK,cAAc,MAAM,MAAQ,EAC3B,GAAU,GAAwB,MAClC,OACN,KAAK,cAAc,MAAM,OAAS,GAAU,MAC5C,IAAI,EAA+B,KAAK,iBAAiB,aACzD,KAAK,KAAK,EAAE,cACR,IAAyB,GAAK,EAAuB,EACzD,KAAK,KAAK,EAAE,cACR,EAAwB,EAE5B,KAAK,KAAK,EAAE,cACR,IAAgB,SAAW,GAAQ,KAAK,KAAK,EAAE,cACnD,KAAK,KAAK,EAAE,cACR,IAAgB,SAAW,GAAQ,KAAK,KAAK,EAAE,cACnD,KAAK,KAAK,EAAE,aACR,KAAK,QAAQ,eAAiB,KAAO,KAAK,QAAQ,eAAiB,GACvE,KAAK,KAAK,EAAE,aACR,KAAK,QAAQ,eAAiB,KAAO,KAAK,QAAQ,eAAiB,GACvE,KAAK,oBAAoB,EAEzB,IAAI,EAAsB,KAAK,KAAK,EAAE,cAChC,KAAK,eACL,EACF,EAAsB,KAAK,KAAK,EAAE,cAChC,KAAK,eACL,EACN,KAAK,KAAK,EAAE,cACR,KAAK,KAAK,EAAE,eACR,EAAuB,EAA8B,EAC7D,KAAK,KAAK,EAAE,cACR,KAAK,KAAK,EAAE,eACR,EACI,EAA+B,EAC3C,KAAK,KAAK,EAAE,UAAU,KAAO,KAAK,iBAAiB,GAAG,EACtD,KAAK,KAAK,EAAE,UAAU,KAAO,KAAK,iBAAiB,GAAG,EAClD,KAAK,KAAK,EAAE,UAAU,KACtB,KAAK,KAAK,EAAE,UAAU,GAAG,MAAM,MAAQ,GAAU,KAAK,KAAK,EAAE,UAAU,UACvE,KAAK,KAAK,EAAE,UAAU,KACtB,KAAK,KAAK,EAAE,UAAU,GAAG,MAAM,OAAS,GAAU,KAAK,KAAK,EAAE,UAAU,UAC5E,KAAK,kBAAkB,GAAG,EAC1B,KAAK,kBAAkB,GAAG,EAC1B,KAAK,sBAAsB,GAAG,EAC9B,KAAK,sBAAsB,GAAG,CAzDS,CA0D3C,EAIA,EAAc,UAAU,iBAAmB,SAAU,EAAM,CAGvD,GADI,IAAS,IAAK,KAAK,EAAO,KAC1B,CAAC,KAAK,KAAK,GAAM,eAAiB,CAAC,KAAK,UACxC,MAAO,GAEX,IAAI,EAAc,KAAK,UAAU,KAAK,KAAK,GAAM,gBAC7C,EAAwB,KAAK,KAAK,GAAM,MAAM,KAA4C,KAAK,KAAK,GAAM,iBAAkD,EAC5J,EAAiB,EAAY,EAC7B,EAEY,KAAK,IAAI,CAAC,EAAE,EAAiB,GAAY,KAAK,QAAQ,gBAAgB,EAItF,OAHI,KAAK,QAAQ,mBACb,EAAgB,KAAK,IAAI,EAAe,KAAK,QAAQ,gBAAgB,GAElE,CACX,EACA,EAAc,UAAU,kBAAoB,SAAU,EAAM,CAEpD,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAY,KAAK,KAAK,GAAM,UAC5B,MAAC,KAAK,KAAK,GAAM,eACjB,CAAC,KAAK,kBACN,CAAC,EAAU,IACX,CAAC,KAAK,UAGV,KAAI,EAAc,KAAK,iBAAiB,KAAK,KAAK,GAAM,gBACpD,EAAmB,KAAK,KAAK,GAAM,MAAM,KAA4C,KAAK,KAAK,GAAM,iBAAoB,EACzH,EAAW,SAAS,KAAK,SAAS,KAAK,KAAK,GAAM,UAAW,EAAE,EAC/D,EAAe,KAAK,iBAAiB,KAAK,KAAK,GAAM,kBACzD,EACI,IAAS,KACL,KAAK,OACE,EAAc,cAAc,GAA2C,qBAC5E,CAAC,EACD,EACN,IAAS,KAAO,KAAK,QACrB,EAAsB,EAAc,cAAc,GAA2C,sBACvF,EACA,CAAC,GAEX,IAAI,EAAiB,GAAgB,EAAc,GAC/C,EAAe,CAAC,GAAG,EAAY,EAAU,MAAQ,GACrD,EACI,IAAS,KAAO,KAAK,MACf,CAAC,GAAgB,EAAY,EAAU,MACvC,EACV,EAAU,GAAG,MAAM,UACf,IAAS,IACH,eAAsB,aACtB,kBAAyB,SAxBqB,CAyB5D,EACA,EAAc,UAAU,sBAAwB,SAAU,EAAM,CACxD,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAQ,KAAK,KAAK,GAAM,MAAM,GAC9B,EAAY,KAAK,KAAK,GAAM,UAAU,GACtC,CAAC,GAAS,CAAC,GAAa,CAAC,KAAK,mBAE9B,KAAK,KAAK,GAAM,eAAiB,KAAK,KAAK,GAAM,cACjD,EAAM,MAAM,WAAa,UACzB,KAAK,iBAAiB,MAAM,KAAK,KAAK,GAAM,cAAgB,SAC5D,KAAK,GAAG,UAAU,IAAI,GAAU,KAAK,WAAW,cAAwB,GAAK,IAG7E,EAAM,MAAM,WAAa,SACzB,KAAK,iBAAiB,MAAM,KAAK,KAAK,GAAM,cAAgB,SAC5D,KAAK,GAAG,UAAU,OAAO,GAAU,KAAK,WAAW,cAAwB,GAAK,GAGhF,KAAK,KAAK,GAAM,cAChB,EAAU,MAAM,QAAU,QAG1B,EAAU,MAAM,QAAU,OAElC,EACA,EAAc,UAAU,cAAgB,SAAU,EAAM,CAChD,IAAS,IAAK,KAAK,EAAO,KAC1B,KAAK,KAAK,GAAM,eAAiB,CAAC,KAAK,KAAK,GAAM,UAAU,YAC5D,EAAW,KAAK,KAAK,GAAM,UAAU,GAAI,KAAK,WAAW,OAAO,EAChE,KAAK,KAAK,GAAM,UAAU,UAAY,GAE9C,EACA,EAAc,UAAU,cAAgB,SAAU,EAAM,CAChD,IAAS,IAAK,KAAK,EAAO,KAC1B,MAAK,YAEL,KAAK,KAAK,GAAM,eAAiB,KAAK,KAAK,GAAM,UAAU,YAC3D,EAAc,KAAK,KAAK,GAAM,UAAU,GAAI,KAAK,WAAW,OAAO,EACnE,KAAK,KAAK,GAAM,UAAU,UAAY,GAE9C,EACA,EAAc,UAAU,oBAAsB,UAAY,CACjD,KAAK,WAEV,KAAK,SAAS,MAAM,KAAK,MAAQ,OAAS,SACtC,KAAK,KAAK,EAAE,eAAiB,KAAK,KAAK,EAAE,aACnC,IAAW,KAAK,mBAChB,MACV,KAAK,SAAS,MAAM,OAChB,KAAK,KAAK,EAAE,eAAiB,KAAK,KAAK,EAAE,aACnC,IAAW,KAAK,mBAChB,MACd,EACA,EAAc,UAAU,mBAAqB,SAAU,EAAM,CACrD,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAc,KAAK,KAAK,GACxB,CAAC,EAAY,MAAM,IAAM,CAAC,EAAY,UAAU,KAEpD,EAAY,MAAM,KAAO,EAAY,MAAM,GAAG,sBAAsB,EACpE,EAAY,UAAU,KAClB,EAAY,UAAU,GAAG,sBAAsB,EAC/C,KAAK,eAAe,EAAY,MAAM,IAAI,GAC1C,KAAK,cAAc,CAAI,EACvB,EAAW,EAAY,MAAM,GAAI,KAAK,WAAW,KAAK,EAClD,KAAK,eAAe,EAAY,UAAU,IAAI,EAC9C,EAAW,EAAY,UAAU,GAAI,KAAK,WAAW,KAAK,EAG1D,EAAc,EAAY,UAAU,GAAI,KAAK,WAAW,KAAK,IAIjE,EAAc,EAAY,MAAM,GAAI,KAAK,WAAW,KAAK,EACrD,KAAK,QAAQ,UACb,KAAK,cAAc,CAAI,GAGnC,EACA,EAAc,UAAU,oBAAsB,SAAU,EAAM,CACtD,IAAS,IAAK,KAAK,EAAO,KAC9B,EAAc,KAAK,KAAK,GAAM,MAAM,GAAI,KAAK,WAAW,KAAK,EAC7D,EAAc,KAAK,KAAK,GAAM,UAAU,GAAI,KAAK,WAAW,KAAK,EAC7D,KAAK,QAAQ,UACb,KAAK,cAAc,CAAI,CAE/B,EAIA,EAAc,UAAU,YAAc,SAAU,EAAG,EAAM,CAEjD,IAAS,IAAK,KAAK,EAAO,KAC9B,KAAK,WAAa,GAClB,IAAI,EAAa,GAAmB,KAAK,EAAE,EACvC,EAAW,EAAiB,KAAK,EAAE,EACnC,EAAY,KAAK,KAAK,GAAM,UAE5B,EAAc,IAAS,IAAM,EAAE,MAAQ,EAAE,MAC7C,KAAK,KAAK,GAAM,WACZ,GAAsB,EAAU,OAA8C,KAAK,KAAK,GAAM,aAAgB,GAClH,KAAK,YAAc,EACnB,EAAW,KAAK,GAAI,KAAK,WAAW,QAAQ,EAC5C,EAAW,iBAAiB,YAAa,KAAK,KAAM,EAAI,EACxD,EAAW,iBAAiB,UAAW,KAAK,UAAW,EAAI,EACvD,KAAK,uBAAyB,MAC9B,EAAW,iBAAiB,QAAS,KAAK,aAAc,EAAI,EAC5D,EAAW,iBAAiB,WAAY,KAAK,aAAc,EAAI,IAG/D,EAAS,aAAa,KAAK,oBAAoB,EAC/C,KAAK,qBAAuB,KAEpC,EACA,EAAc,UAAU,aAAe,SAAU,EAAG,EAAM,CACtD,IAAI,EAAQ,KAER,IAAS,IAAK,KAAK,EAAO,KAC9B,IAAI,EAAc,KAAK,KAAK,GACxB,MAAC,KAAK,QAAQ,cACd,CAAC,EAAY,UAAU,IACvB,CAAC,KAAK,kBAGV,GAAE,eAAe,EACjB,IAAI,EAAW,EAAiB,KAAK,EAAE,EACvC,KAAK,KAAK,GAAM,UAAU,KACtB,EAAY,UAAU,GAAG,sBAAsB,EAEnD,IAAI,EADY,KAAK,KAAK,GAAM,UACY,OAA8C,KAAK,KAAK,GAAM,aAA8C,EACpJ,EAAW,SAAqB,KAAK,WAAkD,KAAK,KAAK,GAAM,WAA4C,MAAO,EAAE,EAC5J,EAAW,KAAK,iBAAiB,KAAK,KAAK,GAAM,kBAIjD,GAHI,IAAS,IACX,KAAK,OAAS,EACd,KAAK,OAAS,GACN,EAAI,GAAK,EACnB,EAAa,IAAQ,GAAK,EAAW,EAAW,EAAW,EAC3D,EAAQ,GACR,EAAW,UAAY,CAClB,EAAM,mBAEP,IAAQ,GACJ,EAAW,IACX,GAAY,EACZ,EAAM,iBAAiB,EAAM,KAAK,GAAM,kBAAoB,EAC5D,EAAS,sBAAsB,CAAQ,GAIvC,EAAW,IACX,GAAY,EACZ,EAAM,iBAAiB,EAAM,KAAK,GAAM,kBAAoB,EAC5D,EAAS,sBAAsB,CAAQ,GAGnD,EACA,EAAS,CAhCQ,CAiCrB,EAIA,EAAc,UAAU,kBAAoB,UAAY,CACpD,OAAO,KAAK,SAChB,EAIA,EAAc,UAAU,iBAAmB,UAAY,CACnD,OAAO,KAAK,gBAChB,EACA,EAAc,UAAU,gBAAkB,UAAY,CAClD,IAAI,EAAW,EAAiB,KAAK,EAAE,EAEvC,KAAK,GAAG,oBAAoB,aAAc,KAAK,YAAY,EAC3D,KAAK,GAAG,oBAAoB,cAAe,KAAK,eAAgB,EAAI,EACpE,KAAK,GAAG,oBAAoB,YAAa,KAAK,WAAW,EACzD,KAAK,GAAG,oBAAoB,aAAc,KAAK,YAAY,EACvD,KAAK,kBACL,KAAK,iBAAiB,oBAAoB,SAAU,KAAK,QAAQ,EAErE,EAAS,oBAAoB,SAAU,KAAK,cAAc,EACtD,KAAK,kBACL,KAAK,iBAAiB,WAAW,EAEjC,KAAK,gBACL,KAAK,eAAe,WAAW,EAGnC,KAAK,YAAY,OAAO,EACxB,KAAK,eAAe,OAAO,EAC3B,KAAK,gBAAgB,OAAO,EAC5B,KAAK,eAAe,OAAO,CAC/B,EAIA,EAAc,UAAU,QAAU,UAAY,CAC1C,KAAK,gBAAgB,CACzB,EAIA,EAAc,UAAU,eAAiB,SAAU,EAAM,CACrD,OAAQ,KAAK,QAAU,EAAK,MACxB,KAAK,QAAU,EAAK,KAAO,EAAK,OAChC,KAAK,QAAU,EAAK,KACpB,KAAK,QAAU,EAAK,IAAM,EAAK,MACvC,EAIA,EAAc,UAAU,UAAY,SAAU,EAAI,EAAO,CACrD,IAAI,EAAU,EAAG,SACb,EAAG,uBACH,EAAG,oBACH,EAAG,kBACP,OAAO,MAAM,UAAU,OAAO,KAAK,EAAG,SAAU,SAAU,EAAO,CAC7D,OAAO,EAAQ,KAAK,EAAO,CAAK,CACpC,CAAC,EAAE,EACP,EACA,EAAc,WAAa,KAC3B,EAAc,eAAiB,CAC3B,aAAc,GACd,aAAc,GACd,iBAAkB,GAClB,iBAAkB,EAClB,UAAW,qBACX,SAAU,EACV,WAAY,CACR,UAAW,oBACX,eAAgB,4BAChB,OAAQ,mBACR,KAAM,iBACN,QAAS,oBACT,YAAa,wBACb,UAAW,sBACX,MAAO,kBACP,4BAA6B,yCAC7B,qBAAsB,iCACtB,QAAS,oBACT,WAAY,uBACZ,SAAU,qBACV,MAAO,kBACP,SAAU,qBACV,UAAW,sBACX,WAAY,uBACZ,aAAc,yBAClB,EACA,eAAgB,KAChB,YAAa,KACb,SAAU,EACd,EAIA,EAAc,WAAaC,GAC3B,EAAc,QAAU,GACjB,CACX,EAAE,ECn4BE,GAAgB,SAAS,EAAG,EAAG,CAI/B,MAHA,IAAgB,OAAO,gBAClB,CAAE,UAAW,CAAC,CAAE,YAAa,OAAS,SAAU,EAAG,EAAG,CAAE,EAAE,UAAY,CAAG,GAC1E,SAAU,EAAG,EAAG,CAAE,IAAK,IAAI,KAAK,EAAO,OAAO,UAAU,eAAe,KAAK,EAAG,CAAC,IAAG,EAAE,GAAK,EAAE,GAAI,EAC7F,GAAc,EAAG,CAAC,CAC7B,EAEA,SAAS,GAAU,EAAG,EAAG,CACrB,GAAI,OAAO,GAAM,YAAc,IAAM,KACjC,MAAU,UAAU,uBAAyB,OAAO,CAAC,EAAI,+BAA+B,EAC5F,GAAc,EAAG,CAAC,EAClB,SAAS,GAAK,CAAE,KAAK,YAAc,CAAG,CACtC,EAAE,UAAY,IAAM,KAAO,OAAO,OAAO,CAAC,GAAK,EAAG,UAAY,EAAE,UAAW,IAAI,EACnF,CAEA,IAAI,GAAK,GAAc,QAAS,GAAa,GAAG,WAAY,EAAa,GAAG,WAAY,GAAY,GAAG,UACnG,GAA2B,SAAU,EAAQ,CAC7C,GAAU,EAAW,CAAM,EAC3B,SAAS,GAAY,CAEjB,IAAK,IADD,EAAO,CAAC,EACH,EAAK,EAAG,EAAK,UAAU,OAAQ,IACpC,EAAK,GAAM,UAAU,GAEzB,IAAI,EAAQ,EAAO,MAAM,KAAM,CAAI,GAAK,KAGxC,OADA,EAAU,UAAU,IAAI,EAAK,GAAI,CAAK,EAC/B,CACX,CAqIA,MApIA,GAAU,sBAAwB,UAAY,CAC1C,SAAS,oBAAoB,mBAAoB,KAAK,qBAAqB,EAC3E,OAAO,oBAAoB,OAAQ,KAAK,qBAAqB,EAC7D,MAAM,UAAU,QAAQ,KAAK,SAAS,iBAAiB,kBAAkB,EAAG,SAAU,EAAI,CAClF,EAAG,aAAa,gBAAgB,IAAM,QACtC,CAAC,EAAU,UAAU,IAAI,CAAE,GAC3B,IAAI,EAAU,EAAI,GAAW,EAAG,UAAU,CAAC,CACnD,CAAC,CACL,EACA,EAAU,eAAiB,UAAY,CACnC,IAAI,GACH,EAAK,EAAU,iBAAoB,MAAiC,EAAG,WAAW,CACvF,EACA,EAAU,UAAU,QAAU,UAAY,CACtC,IAAI,EAAQ,KACR,EAAI,EAAI,EAEZ,GAAI,CAAC,MAAM,UAAU,OAAO,KAAK,KAAK,GAAG,SAAU,SAAU,EAAO,CAChE,OAAO,EAAM,UAAU,SAAS,EAAM,WAAW,OAAO,CAC5D,CAAC,EAAE,OAAQ,CAkBP,IAhBA,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,iBAAmB,SAAS,cAAc,KAAK,EACpD,KAAK,SAAW,SAAS,cAAc,KAAK,EAC5C,KAAK,OAAS,SAAS,cAAc,KAAK,EAC1C,KAAK,UAAY,SAAS,cAAc,KAAK,EAC7C,KAAK,cAAgB,SAAS,cAAc,KAAK,EACjD,KAAK,4BAA8B,SAAS,cAAc,KAAK,EAC/D,KAAK,qBAAuB,SAAS,cAAc,KAAK,EACxD,EAAW,KAAK,UAAW,KAAK,WAAW,OAAO,EAClD,EAAW,KAAK,iBAAkB,KAAK,WAAW,cAAc,EAChE,EAAW,KAAK,SAAU,KAAK,WAAW,MAAM,EAChD,EAAW,KAAK,OAAQ,KAAK,WAAW,IAAI,EAC5C,EAAW,KAAK,UAAW,KAAK,WAAW,SAAS,EACpD,EAAW,KAAK,cAAe,KAAK,WAAW,WAAW,EAC1D,EAAW,KAAK,4BAA6B,KAAK,WAAW,2BAA2B,EACxF,EAAW,KAAK,qBAAsB,KAAK,WAAW,oBAAoB,EACnE,KAAK,GAAG,YACX,KAAK,UAAU,YAAY,KAAK,GAAG,UAAU,EAEjD,KAAK,iBAAiB,YAAY,KAAK,SAAS,EAChD,KAAK,SAAS,YAAY,KAAK,gBAAgB,EAC/C,KAAK,OAAO,YAAY,KAAK,QAAQ,EACrC,KAAK,4BAA4B,YAAY,KAAK,oBAAoB,EACtE,KAAK,UAAU,YAAY,KAAK,2BAA2B,EAC3D,KAAK,UAAU,YAAY,KAAK,MAAM,EACtC,KAAK,UAAU,YAAY,KAAK,aAAa,EAC7C,KAAK,GAAG,YAAY,KAAK,SAAS,GACjC,EAAK,KAAK,mBAAsB,MAAiC,EAAG,aAAa,WAAY,KAAK,QAAQ,SAAS,SAAS,CAAC,GAC7H,EAAK,KAAK,mBAAsB,MAAiC,EAAG,aAAa,OAAQ,QAAQ,GACjG,EAAK,KAAK,mBAAsB,MAAiC,EAAG,aAAa,aAAc,KAAK,QAAQ,SAAS,CAC1H,CACA,GAAI,CAAC,KAAK,KAAK,EAAE,MAAM,IAAM,CAAC,KAAK,KAAK,EAAE,MAAM,GAAI,CAChD,IAAI,EAAQ,SAAS,cAAc,KAAK,EACpC,EAAY,SAAS,cAAc,KAAK,EAC5C,EAAW,EAAO,KAAK,WAAW,KAAK,EACvC,EAAW,EAAW,KAAK,WAAW,SAAS,EAC/C,EAAM,YAAY,CAAS,EAC3B,KAAK,KAAK,EAAE,MAAM,GAAK,EAAM,UAAU,EAAI,EAC3C,EAAW,KAAK,KAAK,EAAE,MAAM,GAAI,KAAK,WAAW,UAAU,EAC3D,KAAK,KAAK,EAAE,MAAM,GAAK,EAAM,UAAU,EAAI,EAC3C,EAAW,KAAK,KAAK,EAAE,MAAM,GAAI,KAAK,WAAW,QAAQ,EACzD,KAAK,GAAG,YAAY,KAAK,KAAK,EAAE,MAAM,EAAE,EACxC,KAAK,GAAG,YAAY,KAAK,KAAK,EAAE,MAAM,EAAE,CAC5C,CACA,GAAc,UAAU,QAAQ,KAAK,IAAI,EACzC,KAAK,GAAG,aAAa,iBAAkB,MAAM,CACjD,EACA,EAAU,UAAU,QAAU,UAAY,CACtC,GAAc,UAAU,QAAQ,KAAK,IAAI,EACzC,EAAU,UAAU,OAAU,KAAK,EAAE,CACzC,EACA,EAAU,YAAc,UAAY,CAChC,KAAK,sBAAwB,KAAK,sBAAsB,KAAK,IAAI,EAE7D,OAAO,iBAAqB,MAE5B,KAAK,eAAiB,IAAI,iBAAiB,EAAU,eAAe,EACpE,KAAK,eAAe,QAAQ,SAAU,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,GAIxE,SAAS,aAAe,YACvB,SAAS,aAAe,WAAa,CAAC,SAAS,gBAAgB,SAEhE,OAAO,WAAW,KAAK,qBAAqB,GAG5C,SAAS,iBAAiB,mBAAoB,KAAK,qBAAqB,EACxE,OAAO,iBAAiB,OAAQ,KAAK,qBAAqB,EAElE,EACA,EAAU,gBAAkB,SAAU,EAAW,CAC7C,EAAU,QAAQ,SAAU,EAAU,CAClC,EAAS,WAAW,QAAQ,SAAU,EAAW,CACzC,EAAU,WAAa,IACnB,EAAU,aAAa,gBAAgB,EACvC,CAAC,EAAU,UAAU,IAAI,CAAS,GAC9B,SAAS,gBAAgB,SAAS,CAAS,GAC3C,IAAI,EAAU,EAAW,GAAW,EAAU,UAAU,CAAC,EAG7D,EACK,iBAAiB,kBAAkB,EACnC,QAAQ,SAAU,EAAI,CACnB,EAAG,aAAa,gBAAgB,IAAM,QACtC,CAAC,EAAU,UAAU,IAAI,CAAE,GAC3B,SAAS,gBAAgB,SAAS,CAAE,GACpC,IAAI,EAAU,EAAI,GAAW,EAAG,UAAU,CAAC,CACnD,CAAC,EAGb,CAAC,EACD,EAAS,aAAa,QAAQ,SAAU,EAAa,CACjD,IAAI,EACA,EAAY,WAAa,IACrB,EAAY,aAAa,gBAAgB,IAAM,OAC/C,CAAC,SAAS,gBAAgB,SAAS,CAAW,KACxC,EAAK,EAAU,UAAU,IAAI,CAAW,IAAO,MAAiC,EAAG,QAAQ,GAGjG,MAAM,UAAU,QAAQ,KAAK,EAAY,iBAAiB,yBAAyB,EAAG,SAAU,EAAI,CAChG,IAAI,EACJ,CAAC,SAAS,gBAAgB,SAAS,CAAE,KAC/B,EAAK,EAAU,UAAU,IAAI,CAAE,IAAO,MAAiC,EAAG,QAAQ,EAC5F,CAAC,EAGb,CAAC,CACL,CAAC,CACL,EACA,EAAU,UAAY,IAAI,QACnB,CACX,EAAE,EAAa,EAKX,IACA,GAAU,YAAY,EC5L1B,IAAA,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,OACN,QAAS,CACP,qBAAA,QACF,CACF,CAAC,wHCVY,EAAA,iBAAgB,CAAA,+BCS7B,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,UACN,MAAO,CACL,KAAM,CACJ,KAAM,OAGN,QAAS,MACX,CACF,CACF,CAAC,4ECjBK,IAAA,CAFD,OAAA,EAAA,EAAA,gBAAK,CAAC,QAAO,YAAqB,EAAA,MAAI,CAAA,EAAI,KAAK,2BACxC,EAAA,OAAA,SAAA,CAAA,EAAA,CAAA,+BCCZ,GAAQ,QAAW,GAAa,CAC9B,EAAI,UAAU,GAAQ,MAAQ,WAAY,EAAO,CACnD,EAEA,IAAA,GAAe,oBCFd,SAAS,EAAE,EAAE,CAAW,OAAO,GAAjB,UAA8C,IAApB,OAA2B,EAAO,QAAQ,EAAE,EAAc,OAAO,QAAnB,YAA2B,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,EAAe,OAAO,WAApB,IAA+B,WAAW,GAAG,MAAM,UAAU,EAAE,CAAC,GAAA,EAAO,UAAU,CAAC,aAAa,IAAM,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAM,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAO,EAAE,OAAN,EAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,MAAM,+EAA+E,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,IAAM,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAM,EAAE,OAAN,GAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,GAAG,OAAO,KAAK,OAAO,IAAI,SAAS,EAAE,EAAE,QAAQ,iBAAiB,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,GAAS,GAAN,KAAQ,GAAG,IAAI,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,MAAM,aAAa,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,CAAC,EAAE,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAa,OAAO,GAAjB,YAA+B,EAAE,SAAX,IAAK,KAAe,EAAE,EAAE,IAAa,EAAE,WAAX,IAAK,IAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAY,OAAO,GAAjB,UAAoB,EAAE,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAO,EAAE,eAAe,EAAE,SAAvB,EAA8B,MAAM,CAAC,EAAE,IAAM,EAAc,iBAAiB,CAAC,EAAE,iBAAiB,YAAY,IAA7D,UAA+D,EAAE,EAAE,QAAQ,qBAAqB,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,IAAM,EAAE,EAAE,QAAQ,SAAS,EAAkC,GAA7B,GAAG,EAAE,aAAa,GAAqB,IAAP,KAAS,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,cAAc,CAAC,CAAC,EAAE,UAAU,SAAS,UAAU,IAAa,EAAE,WAAX,IAAK,GAA0B,EAAE,aAAa,UAAU,GAAa,EAAE,aAAa,UAAU,IAAnC,QAAvC,EAAE,UAA2E,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,gBAAgB,aAAa,OAAO,KAAK,GAAe,OAAO,EAAE,aAArB,WAAiC,CAAC,IAAM,EAAE,EAAE,YAAY,EAAE,OAAO,aAAa,WAAW,EAAE,IAAI,CAAC,OAAO,aAAa,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,OAAO,QAAQ,CAAC,SAAS,KAAK,aAAa,mBAAmB,EAAE,OAAO,OAAO,KAAK,EAAE,CAAC,EAAE,MAAc,SAAS,gBAAgB,MAAjC,MAAqC,EAAE,GAAG,CAAC,IAAI,MAAQ,CAAC,IAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,gBAAgB,EAAE,GAAG,GAAG,YAAY,EAAE,EAAE,GAAG,GAAG,gBAAgB,EAAE,GAAG,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAc,SAAS,aAArB,WAAiC,EAAE,QAAQ,SAAS,iBAAiB,uBAAuB,CAAC,IAAI,IAAM,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAgB,OAAO,GAAnB,WAAqB,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,EAAE,CAAC,EAAE,IAAM,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,MAAO,GAAE,GAAG,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,EAAsD,OAA5C,OAAO,WAAW,CAAiC,GAA5B,OAAO,WAAW,CAAa,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,GAAG,KAAK,OAAO,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAM,EAAE,CAAC,EAAQ,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,OAAW,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAW,IAAL,GAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAM,EAAE,EAAQ,EAAE,CAAC,WAAW,YAAY,WAAW,UAAU,EAAE,EAAE,IAAI,IAAI,4cAA6hB,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,OAAO,EAAE,UAAU,GAAG,CAAC,SAAS,GAAE,EAAE,CAAC,IAAM,EAAE,GAAE,CAAC,EAAE,MAAO,GAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,GAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,OAAO,OAAO,CAAC,EAAE,KAAK,GAAG,EAAE,WAAW,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,SAAS,GAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAY,OAAO,GAAjB,SAAmB,EAAE,EAAE,EAAE,GAAG,EAAM,EAAE,GAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAa,OAAO,GAAjB,UAAoB,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,GAAE,EAAE,EAAE,CAAC,EAAK,KAAK,IAAsJ,GAA3I,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,eAAe,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,GAAM,CAAC,GAAE,IAAM,EAAE,GAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAM,EAAE,GAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,OAAO,SAAS,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,KAAK,EAAE,EAAE,WAAW,IAAI,IAAM,KAAK,EAAE,GAAG,IAAI,EAAE,OAAO,GAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,SAAS,EAAE,EAAE,CAAC,OAAO,GAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,GAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAQ,CAAE,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,SAAS,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,SAAS,GAAE,EAAE,CAAC,MAAO,GAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAa,OAAO,GAAjB,UAAoB,CAAC,EAAE,OAAO,GAAK,CAAC,EAAE,EAAE,GAAG,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,GAAG,EAAE,GAAY,IAAT,IAAK,GAAM,CAAC,GAAG,EAAE,IAAI,IAAM,KAAK,OAAO,KAAK,CAAC,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAa,OAAO,GAAjB,UAAoB,CAAC,EAAE,OAAO,KAAK,IAAM,EAAE,EAAE,EAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,GAAE,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,CAAC,EAAE,8BAA8B,EAAE,EAAE,EAAE,mBAAmB,GAAG,IAAM,EAAE,GAAE,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,EAAE,kBAAkB,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,SAAS,GAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAS,CAAC,OAAO,eAAe,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,GAAE,EAAE,CAAC,GAAY,IAAT,OAAW,MAAM,CAAC,EAAE,GAAa,IAAV,QAAY,MAAM,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,OAAO,CAAC,EAAE,GAAQ,IAAL,IAAiB,IAAT,OAAW,OAAO,KAAK,GAAa,OAAO,GAAjB,SAAmB,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,MAAM,mBAAmB,CAAC,CAAC,CAAC,MAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,SAAS,GAAG,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,IAAM,GAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,WAAW,GAAE,CAAC,IAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,gBAAgB,WAAW,GAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,IAAM,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,WAAW,IAAI,GAAG,CAAC,EAAE,WAAW,UAAU,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,GAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,IAAI,GAAE,EAAE,aAAa,WAAW,GAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAC,CAAC,WAAW,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAU,MAAM,qEAAqE,CAAC,CAAC,WAAW,EAAE,CAAC,MAAO,GAAE,KAAK,gBAAgB,CAAC,EAAE,EAAE,KAAK,kBAAkB,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,CAAC,EAAE,GAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,YAAY,QAAQ,GAAa,OAAO,GAAjB,SAAmB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,KAAK,YAAY,YAAY,CAAC,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,MAAU,UAAU,GAAG,KAAK,YAAY,KAAK,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,EAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,EAAE,KAAK,QAAQ,KAAK,WAAW,CAAC,EAAE,EAAE,IAAI,KAAK,SAAS,KAAK,YAAY,SAAS,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,SAAS,KAAK,YAAY,QAAQ,EAAE,EAAE,IAAI,KAAK,SAAS,KAAK,YAAY,SAAS,EAAE,IAAI,IAAM,KAAK,OAAO,oBAAoB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,MAAO,GAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,kBAAkB,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAAC,CAAC,OAAO,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,OAAO,oBAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,GAAG,IAAI,KAAK,EAAY,OAAO,GAAjB,SAAmB,EAAE,IAAI,CAAC,CAAC,WAAW,SAAS,CAAC,MAAM,OAAO,CAAC,WAAW,UAAU,CAAC,MAAM,MAAM,KAAK,MAAM,CAAC,WAAW,WAAW,CAAC,MAAM,IAAI,KAAK,UAAU,CAAC,OAAO,UAAU,EAAE,CAAC,MAAM,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,IAAM,GAAE,GAAG,CAAC,IAAI,EAAE,EAAE,aAAa,gBAAgB,EAAE,GAAG,CAAC,GAAS,IAAN,IAAQ,CAAC,IAAI,EAAE,EAAE,aAAa,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,OAAO,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAS,IAAN,IAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ,UAAU,iBAAiB,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,kBAAkB,QAAQ,UAAU,cAAc,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAM,EAAE,CAAC,EAAM,EAAE,EAAE,WAAW,QAAQ,CAAC,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,WAAW,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,uBAAuB,KAAK,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,mBAAmB,KAAK,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,IAAM,EAAE,CAAC,IAAI,SAAS,QAAQ,WAAW,SAAS,UAAU,aAAa,0BAA0B,EAAE,IAAI,GAAG,GAAG,EAAE,sBAAsB,EAAE,KAAK,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,CAAC,IAAM,EAAE,GAAE,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,IAAM,EAAE,GAAE,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,IAAM,EAAE,GAAE,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAG,EAAE,EAAE,SAAS,CAAC,IAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,qBAAqB,EAAE,IAAI,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,IAAM,EAAE,EAAE,uBAAuB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,EAAE,EAAE,oBAAoB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAE,YAAY,GAAE,QAAQ,KAAI,GAAE,SAAS,KAAI,MAAM,UAAU,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,EAAC,EAAE,iBAAiB,OAAO,KAAK,SAAS,UAAU,OAAO,MAAM,EAAE,IAAM,EAAE,KAAK,SAAS,UAAU,SAAS,MAAM,EAAE,KAAK,mBAAmB,KAAK,gBAAgB,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,EAAE,oBAAoB,IAAI,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,IAAU,EAAE,WAAW,GAAG,GAAmB,IAAhB,cAAkB,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,IAAM,GAAE,4BAA4B,MAAM,WAAU,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,aAAa,eAAe,KAAK,SAAS,UAAU,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAE,oBAAoB,IAAI,EAAa,IAAX,UAAc,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,2BAA2B,GAAE,GAAG,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,EAAE,OAAO,QAAQ,EAAC,EAAE,GAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAC,EAAE,IAAM,GAAE,YAAY,GAAE,aAAa,KAAI,GAAE,YAAY,KAAI,GAAG,WAAW,KAAI,GAAG,cAAc,KAAI,GAAG,YAAY,KAAI,GAAG,CAAC,YAAY,KAAK,aAAa,KAAK,cAAc,IAAI,EAAE,GAAG,CAAC,YAAY,kBAAkB,aAAa,kBAAkB,cAAc,iBAAiB,EAAE,MAAM,WAAW,EAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,SAAS,EAAE,GAAG,GAAG,YAAY,IAAI,KAAK,QAAQ,KAAK,WAAW,CAAC,EAAE,KAAK,QAAQ,EAAE,KAAK,sBAAsB,EAAQ,OAAO,aAAc,KAAK,YAAY,EAAE,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,SAAS,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,sBAAsB,KAAK,wBAAwB,CAAC,IAAI,KAAK,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,wBAAwB,CAAC,IAAI,KAAK,QAAQ,EAAE,QAAQ,KAAK,SAAS,KAAK,aAAa,EAAE,EAAE,KAAK,QAAQ,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,EAAE,SAAS,EAAE,QAAQ,OAAO,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ,KAAK,OAAO,CAAC,cAAc,CAAC,IAAM,EAAE,KAAK,IAAI,KAAK,OAAO,EAAE,GAAG,GAAG,GAAG,OAAO,IAAM,EAAE,EAAE,KAAK,QAAQ,KAAK,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,QAAQ,cAAc,KAAK,QAAQ,YAAY,CAAC,CAAC,aAAa,CAAC,KAAK,uBAAuB,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,SAAS,UAAU,IAAI,eAAe,IAAI,EAAE,GAAG,KAAK,SAAS,GAAE,GAAG,KAAK,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAE,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,OAAO,KAAK,wBAAgC,EAAE,cAAV,OAAiC,EAAE,cAAZ,QAAwB,CAAC,OAAO,aAAa,CAAC,MAAM,iBAAiB,SAAS,iBAAiB,UAAU,eAAe,CAAC,CAAC,CAAC,IAAM,EAAG,eAAe,GAAG,YAA2C,GAAG,OAAO,EAAG,OAAO,EAAG,OAAO,EAAG,QAAQ,GAAG,QAAQ,IAAK,GAAG,OAAO,IAAK,GAAG,UAAU,IAAK,GAAG,aAAa,IAAK,GAAG,aAAa,IAAK,EAAG,YAAY,IAAK,GAAG,OAAO,IAAK,KAAK,GAAG,QAAQ,IAAK,KAAK,GAAG,WAAW,EAAG,SAAmD,GAAG,CAAE,UAAI,EAAI,WAAI,CAAE,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,MAAM,QAAQ,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,mBAAmB,SAAS,UAAU,MAAM,mBAAmB,KAAK,mBAAmB,MAAM,UAAU,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,UAAU,KAAK,KAAK,eAAe,KAAK,KAAK,WAAW,CAAC,EAAE,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,mBAAmB,EAAE,QAAQ,uBAAuB,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAE,KAAK,QAAQ,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAE,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,gBAAgB,KAAK,gBAAgB,EAAE,KAAK,QAAQ,QAAQ,CAAC,CAAC,mBAAmB,CAAC,KAAK,QAAQ,OAAO,KAAK,WAAW,EAAE,IAAI,KAAK,SAAS,OAAO,KAAK,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,IAAM,EAAE,KAAK,UAAU,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK,WAAW,OAAO,KAAK,EAAE,IAAI,KAAK,SAAS,OAAO,KAAK,GAAG,CAAC,CAAC,EAAE,IAAM,EAAE,KAAK,cAAc,KAAK,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,IAAM,EAAE,EAAE,EAAE,GAAG,EAAG,KAAK,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,cAAc,KAAK,aAAa,QAAQ,EAAE,MAAM,QAAQ,CAAC,CAAC,kBAAkB,EAAE,CAAC,MAAO,GAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC,oBAAoB,CAAC,KAAK,QAAQ,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,EAAY,KAAK,QAAQ,QAAvB,UAA+B,EAAE,GAAG,KAAK,SAAS,OAAO,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,OAAO,KAAK,kBAAkB,CAAC,GAAG,KAAK,QAAQ,OAAO,GAAG,YAAY,GAAG,KAAK,wBAAwB,CAAC,CAAC,yBAAyB,CAAC,IAAI,IAAM,KAAK,EAAE,KAAK,qBAAqB,KAAK,QAAQ,EAAE,EAAE,GAAG,EAAE,EAAG,GAAG,EAAE,eAAe,CAAC,EAAE,IAAM,EAAE,CAAC,iBAAiB,KAAK,OAAO,KAAK,kBAAkB,CAAE,CAAC,EAAE,kBAAkB,KAAK,OAAO,KAAK,kBAAkB,CAAE,CAAC,EAAE,gBAAgB,CAAW,KAAK,QAAQ,QAAvB,UAA+B,KAAK,MAAM,EAAE,KAAK,cAAc,aAAa,KAAK,YAAY,EAAE,KAAK,aAAa,eAAe,KAAK,kBAAkB,EAAE,IAAI,KAAK,QAAQ,QAAQ,EAAE,CAAC,EAAE,KAAK,aAAa,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,kBAAkB,KAAK,EAAE,OAAO,OAAO,EAAE,OAAO,IAAM,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,eAAe,EAAE,KAAK,OAAO,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,KAAK,mBAAmB,OAAO,IAAM,EAAE,EAAE,QAAQ,UAAG,KAAK,kBAAkB,EAAE,EAAE,UAAU,OAAO,CAAE,EAAE,EAAE,gBAAgB,cAAc,EAAE,IAAM,EAAE,EAAE,QAAQ,sBAAsB,EAAE,IAAI,KAAK,kBAAkB,EAAE,IAAI,EAAE,UAAU,IAAI,CAAE,EAAE,EAAE,aAAa,eAAe,MAAM,EAAE,CAAC,iBAAiB,CAAC,IAAM,EAAE,KAAK,gBAAgB,KAAK,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,IAAM,EAAE,OAAO,SAAS,EAAE,aAAa,kBAAkB,EAAE,EAAE,EAAE,KAAK,QAAQ,SAAS,GAAG,KAAK,QAAQ,eAAe,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,GAAG,KAAK,WAAW,OAAO,IAAM,EAAE,KAAK,WAAW,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,EAAE,EAAE,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,OAAO,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,cAAc,EAAE,UAAU,KAAK,kBAAkB,CAAC,EAAE,KAAK,KAAK,cAAc,CAAC,EAAE,GAAG,CAAC,CAAC,EAAmC,GAA9B,EAAE,EAAE,EAAE,kBAA2B,CAAC,GAAG,CAAC,EAAE,OAAO,IAAM,EAAE,EAAQ,KAAK,UAAW,KAAK,MAAM,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,2BAA2B,CAAC,EAAE,KAAK,eAAe,EAAE,IAAM,EAAE,EAAE,sBAAsB,oBAAoB,EAAE,EAAE,qBAAqB,qBAAqB,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,UAAU,IAAI,CAAC,EAAE,KAAK,mBAAmB,CAAC,EAAE,UAAU,OAAO,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,CAAE,EAAE,EAAE,UAAU,OAAO,EAAG,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,YAAY,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,UAAU,SAAS,OAAO,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,wBAAG,KAAK,QAAQ,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,iBAAG,KAAK,QAAQ,CAAC,CAAC,gBAAgB,CAAC,AAA+C,KAAK,aAAnC,cAAc,KAAK,SAAS,EAAiB,KAAK,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAG,EAAG,GAAG,IAAI,EAAG,GAAG,CAAE,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAG,EAAG,EAAG,IAAI,EAAG,EAAG,CAAE,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,aAAiC,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,IAAU,EAAE,WAAW,GAAG,GAAmB,IAAhB,cAAkB,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,sCAAsC,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,uBAAuB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,SAAS,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,IAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,EAAE,KAAK,aAAa,kBAAkB,EAAS,GAAG,EAAE,GAAG,CAAC,EAAO,EAAE,kBAAkB,GAAY,GAAE,iBAAiB,KAAK,OAAO,IAAxC,QAA2C,EAAE,KAAK,EAAO,EAAE,kBAAkB,IAAI,EAAE,KAAK,EAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,IAAM,EAAE,EAAE,KAAK,2BAA2B,EAAE,IAAI,IAAM,KAAK,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAM,GAAG,eAAe,GAAG,OAAO,KAAK,GAAG,QAAQ,KAAK,GAAG,OAAO,KAAK,GAAG,SAAS,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,EAAG,WAAW,GAAG,aAAa,GAAG,WAAW,EAAG,IAAI,IAAK,GAAG,8BAA8B,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,iBAAiB,OAAO,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,KAAK,cAAc,CAAC,EAAE,IAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,QAAQ,EAAS,IAAP,MAAU,EAAE,QAAQ,KAAK,cAAc,KAAK,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,KAAK,QAAQ,QAAQ,KAAK,0BAA0B,KAAK,cAAc,KAAK,SAAS,CAAC,EAAE,KAAK,QAAQ,QAAQ,KAAK,OAAO,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,kBAAkB,KAAK,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,EAAoN,GAA/M,KAAK,QAAQ,SAAS,EAAE,KAAK,uBAAuB,sCAAsC,EAAE,OAAO,GAAG,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,GAAG,oBAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,kBAA2B,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,iBAAiB,OAAO,IAAI,IAAM,KAAK,EAAE,EAAE,KAAK,EAAE,IAAM,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,UAAU,OAAO,CAAE,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,SAAS,MAAM,GAAG,EAAE,KAAK,0BAA0B,KAAK,cAAc,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,IAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,KAAK,iBAAiB,CAAC,EAAE,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,KAAK,SAAS,UAAU,IAAI,EAAG,EAAE,EAAE,KAAK,SAAS,MAAM,GAAG,GAAG,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,GAAG,GAAG,KAAK,SAAS,GAAG,GAAG,CAAC,MAAM,CAAmD,GAA/C,KAAK,kBAAkB,CAAC,KAAK,SAAS,GAAY,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,iBAAiB,OAAO,IAAM,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,MAAM,GAAG,GAAG,KAAK,SAAS,sBAAsB,EAAE,GAAG,IAAI,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,SAAS,UAAU,OAAO,EAAG,EAAE,EAAE,IAAI,IAAM,KAAK,KAAK,cAAc,CAAC,IAAM,EAAE,EAAE,uBAAuB,CAAC,EAAE,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,EAAE,KAAK,SAAS,MAAM,GAAG,GAAG,KAAK,mBAAmB,CAAC,KAAK,iBAAiB,CAAC,EAAE,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,KAAK,SAAS,UAAU,IAAI,CAAE,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,SAAS,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,MAAO,GAAE,OAAO,EAAQ,EAAE,OAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,SAAS,UAAU,SAAS,qBAAqB,EAAE,QAAQ,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,QAAQ,OAAO,OAAO,IAAM,EAAE,KAAK,uBAAuB,EAAE,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,uBAAuB,CAAC,EAAE,GAAG,KAAK,0BAA0B,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,IAAM,EAAE,EAAE,KAAK,GAAG,KAAK,QAAQ,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,QAAQ,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,IAAI,IAAM,KAAK,EAAE,EAAE,UAAU,OAAO,YAAY,CAAC,CAAC,EAAE,EAAE,aAAa,gBAAgB,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAE,OAAgB,OAAO,GAAjB,UAAoB,YAAY,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,GAAS,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,GAAG,SAAS,EAAE,EAAQ,EAAE,OAAO,UAAf,KAAwB,EAAE,gBAAsB,EAAE,eAAe,UAAvB,MAAiC,EAAE,eAAe,EAAE,IAAI,IAAM,KAAK,EAAE,gCAAgC,IAAI,EAAE,GAAG,oBAAoB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,MAAM,EAAG,SAAS,EAAG,QAAQ,EAAG,OAAO,GAAG,OAAO,GAAG,CAAC,EAAG,EAAG,EAAG,CAAE,EAAE,GAAG,QAAQ,EAAG,MAAM,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,QAAQ,GAAG,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAG,EAAE,CAAC,OAAO,GAAG,EAAE,UAAU,IAAI,YAAY,EAAE,IAAI,CAAC,SAAS,EAAG,EAAE,CAAC,GAAS,GAAN,KAAQ,OAAO,OAAO,GAAuB,EAAE,SAAS,IAA/B,kBAAiC,CAAC,IAAI,EAAE,EAAE,cAAc,OAAO,GAAG,EAAE,aAAa,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,aAAa,EAAG,CAAC,EAAE,SAAS,aAAa,OAAO,CAAC,SAAS,EAAG,EAAE,CAAC,OAAO,aAAa,EAAG,CAAC,EAAE,aAAa,aAAa,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC,OAAmB,OAAO,WAApB,MAAiC,aAAa,EAAG,CAAC,EAAE,YAAY,aAAa,WAAW,CAAC,IAAM,GAAG,CAAC,KAAK,cAAc,QAAQ,CAAC,EAAE,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,GAAG,EAAG,CAAC,GAAG,EAAG,CAAC,IAAI,OAAO,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,SAAS,KAAK,IAAI,IAAI,IAAI,OAAO,GAAG,EAAE,MAAM,CAAC,SAAS,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,OAAO,OAAO,OAAO,EAAE,SAAS,OAAO,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,OAAO,OAAO,OAAO,EAAE,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,WAAW,IAAI,CAAC,EAAE,EAAE,OAAO,KAAK,EAAE,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAG,CAAC,GAAG,EAAG,CAAC,IAAI,OAAO,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,SAAS,EAAG,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,MAAM,SAAS,IAAI,CAAC,IAAI,EAAE,UAAU,cAAc,OAAa,GAAN,MAAS,EAAE,QAAQ,MAAM,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,GAAG,EAAE,UAAU,SAAS,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,iCAAiC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAU,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAY,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAG,CAAC,IAAI,EAAE,EAAE,YAAY,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,EAAG,CAAC,EAAE,QAAQ,eAAe,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,WAAW,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,aAAa,OAAO,KAAK,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,EAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,QAAQ,EAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,OAAO,UAAU,eAAe,CAAC,SAAS,GAAG,EAAE,CAAC,OAAe,EAAG,CAAC,IAAb,OAAe,EAAE,EAAE,cAAc,EAAE,aAAa,GAAG,CAAC,EAAE,EAAE,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,EAAG,CAAC,GAAa,GAAG,CAAC,EAAE,WAAhB,QAAyB,EAAE,aAAa,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAc,GAAG,CAAC,EAAE,WAAjB,UAA2B,EAAE,GAAG,CAAC,EAAE,OAAO,IAAa,EAAG,CAAC,IAAb,QAAyB,EAAG,CAAC,IAAb,QAA2B,GAAG,CAAC,EAAE,WAAjB,UAA2B,EAAE,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,GAAG,CAAC,EAAE,GAAG,WAAW,KAAK,GAAG,CAAC,GAAG,EAAG,CAAC,GAAa,GAAG,CAAC,EAAE,WAAhB,QAAyB,OAAO,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAG,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAY,EAAE,YAAX,QAA+B,EAAE,cAAX,QAAkC,EAAE,UAAZ,SAA0B,CAAC,YAAY,aAAa,EAAE,QAAQ,EAAE,UAAU,IAArD,IAAwD,GAAc,EAAE,aAAb,UAAyB,GAAG,EAAE,QAAiB,EAAE,SAAX,OAAkB,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAM,GAAG,CAAC,KAAK,QAAQ,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,cAAc,cAAc,EAAE,EAAG,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAG,CAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,GAAa,OAAO,EAAc,OAAO,GAAnB,WAAqB,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,IAA7F,SAAkG,GAAG,EAAE,EAAE,EAAT,CAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAQ,IAAN,IAAQ,EAAG,EAAG,EAAQ,IAAN,IAAQ,EAAG,EAAG,EAAE,EAAE,MAAM,UAAU,GAAG,EAAE,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,MAAM,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAQ,IAAN,IAAQ,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,QAAQ,EAAW,IAAT,IAAK,GAAM,sBAAsB,EAAQ,GAAN,OAAoB,OAAO,GAAjB,WAAqB,EAAE,EAAE,SAAS,OAAO,cAAc,CAAC,KAAK,GAAG,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,MAAM,OAAO,OAAO,OAAO,KAAK,MAAM,EAAE,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAW,IAAT,IAAK,GAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAW,IAAT,IAAK,GAAM,EAAE,EAAE,EAAc,OAAO,GAAnB,WAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,EAAE,eAAe,GAAG,EAAE,EAAE,EAAG,EAAE,EAAG,EAAE,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,cAAc,IAAI,EAAG,CAAC,GAAc,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,WAAvB,UAA8C,IAAb,aAAiB,EAAE,eAAe,EAAE,gBAAgB,IAAI,IAAK,IAAI,GAAI,IAAI,IAAK,IAAI,KAAM,EAAE,EAAG,IAAI,GAAG,IAAI,GAAG,EAAE,eAAe,EAAE,eAAe,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI,IAAK,IAAI,GAAI,IAAI,GAAI,IAAI,KAAM,EAAE,EAAG,IAAI,GAAG,IAAI,GAAG,EAAE,eAAe,EAAE,eAAe,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,GAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,OAAO,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,WAAW,EAAE,kBAAkB,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,IAAM,GAAG,CAAC,KAAK,gBAAgB,QAAQ,CAAC,EAAE,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,gBAAgB,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,SAAS,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,aAAa,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,CAAC,UAAU,EAAG,EAAE,SAAS,EAAE,UAAU,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,OAAO,WAAW,EAAE,MAAM,OAAO,gBAAgB,EAAE,QAAkB,EAAE,QAAQ,WAApB,OAA4B,EAAQ,EAAE,cAAc,eAAtB,OAAsC,EAAE,OAAO,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,OAAO,OAAO,GAAG,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,cAAc,cAAc,SAAS,EAAE,QAAQ,SAAS,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAS,EAAE,cAAc,OAAtB,OAA8B,EAAE,OAAO,MAAM,OAAO,OAAO,CAAC,EAAE,EAAE,OAAO,MAAM,GAAG,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,cAAc,MAAM,SAAS,WAAW,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,WAAW,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAM,GAAG,CAAC,KAAK,iBAAiB,QAAQ,CAAC,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,OAAO,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,OAAO,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAG,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,UAAU,EAAE,cAAc,MAAM,EAAE,OAAO,GAAG,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,iBAAiB,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,iBAAiB,SAAS,EAAE,OAAO,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,oBAAoB,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,oBAAoB,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,QAAQ,MAAM,OAAO,OAAO,MAAM,IAAI,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,yBAAyB,SAAS,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,MAAM,IAAI,OAAO,EAAE,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,aAAa,SAAS,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,EAAG,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,YAAY,UAAU,EAAE,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,MAAM,6BAA6B,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,WAAW,EAAE,QAAQ,EAAG,CAAC,CAAC,GAAG,EAAE,EAAE,cAAc,KAAK,EAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAgB,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,IAAc,EAAE,eAAwB,KAAM,EAAE,EAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,GAAG,GAAG,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,GAAa,IAAV,WAAe,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAY,IAAV,OAAW,EAAE,MAAO,GAAE,KAAU,EAAE,UAAU,EAAE,MAAY,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,IAAM,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAW,EAAE,eAAwB,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,OAAc,GAAG,GAAG,CAAC,EAAE,YAAjB,QAA6B,GAAG,GAAG,EAAE,YAAY,EAAE,EAAE,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,EAAG,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAP,CAAU,KAAK,EAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,EAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,EAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,EAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,GAAS,GAAN,KAAQ,CAAC,IAAI,EAAQ,IAAN,IAAQ,SAAS,QAAQ,OAAO,EAAP,CAAU,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,KAAK,EAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAU,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAW,IAAT,IAAK,GAAM,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAW,IAAT,IAAK,GAAM,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAW,IAAT,IAAK,GAAM,GAAG,EAAE,EAAE,EAAE,aAAa,EAAW,IAAT,IAAK,GAAM,GAAG,EAAE,EAAE,EAAE,eAAe,EAAW,IAAT,IAAK,GAAM,GAAG,EAAE,EAAE,EAAE,YAAY,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,QAAQ,EAAW,IAAT,IAAK,GAAM,EAAE,EAAE,EAAE,GAAa,OAAO,GAAjB,SAAqB,GAAG,EAAE,EAAE,EAAT,CAAU,EAAE,EAAE,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,MAAM,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAsB,IAApB,kBAAsB,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAY,EAAG,CAAC,IAAb,MAAc,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAO,GAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAO,GAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,gBAAgB,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAE,EAAE,cAAc,OAAO,GAAG,IAAI,IAAI,GAAE,CAAC,IAAI,GAAE,GAAE,GAAG,OAAO,KAAK,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAG,CAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAG,CAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,GAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAU,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,eAAe,EAAE,EAAE,sBAAsB,EAAW,IAAT,IAAK,GAAM,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,SAAS,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAM,EAAE,SAAN,IAAe,EAAE,GAAG,IAAI,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,OAAO,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAM,GAAG,CAAC,KAAK,OAAO,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,QAAQ,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE,eAAe,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,QAAQ,UAAU,EAAE,EAAG,CAAC,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,GAAG,EAAG,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,UAAU,EAAE,EAAE,MAAM,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,GAAE,EAAG,CAAC,EAAE,GAAE,GAAG,CAAC,IAAI,GAAG,GAAE,CAAC,EAAG,CAAE,EAAE,QAAQ,EAAC,GAAG,EAAE,GAAE,GAAE,QAAQ,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAE,GAAE,EAAG,EAAG,GAAE,EAAG,EAAG,EAAE,IAAG,EAAE,MAAK,EAAE,GAAG,CAAC,GAAG,IAAI,GAAE,GAAG,CAAC,EAAE,GAAE,CAAC,EAAE,GAAG,GAAG,GAAE,KAAK,EAAE,KAAI,CAAC,EAAE,GAAG,GAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAI,CAAC,EAAE,GAAE,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAO,GAAE,EAAE,OAAO,EAAE,GAAE,EAAE,EAAE,EAAE,GAAE,GAAa,EAAE,EAAC,IAAb,QAAe,MAAK,EAAE,YAAY,IAAI,EAAE,cAAc,GAAG,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CAAC,OAAgB,IAAT,IAAK,KAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,EAAG,EAAG,EAAG,CAAE,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAM,GAAG,CAAC,KAAK,OAAO,QAAQ,CAAC,EAAE,MAAM,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,UAAU,EAAE,EAAE,MAAM,OAAO,EAAE,EAAE,cAAc,gBAAgB,EAAE,GAAG,EAAE,CAAC,eAAe,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,cAAc,GAAG,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,EAAE,WAAW,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,WAAW,OAAO,CAAC,+BAA+B,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,SAAS,QAAQ,CAAC,EAAE,MAAM,OAAO,SAAS,CAAC,eAAe,EAAE,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAW,IAAT,IAAK,GAAM,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAG,CAAC,EAAE,EAAE,CAAC,EAAG,CAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAc,OAAO,GAAnB,WAAqB,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAO,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAG,CAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAQ,EAAE,cAAc,eAAtB,OAAsC,EAAE,cAAc,cAAc,GAAG,EAAE,EAAE,cAAc,cAAc,GAAG,GAAG,EAAE,cAAc,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,gBAAgB,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,UAAU,QAAQ,EAAE,MAAM,OAAO,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,kBAAkB,QAAQ,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,QAAQ,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAW,IAAT,IAAK,IAAO,EAAE,EAAE,EAAE,aAAa,EAAW,IAAT,IAAK,GAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAG,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAQ,IAAN,IAAQ,IAAI,IAAI,EAAE,EAAE,cAAc,cAAc,EAAE,EAAE,MAAM,UAAU,EAAE,EAAE,MAAM,OAAO,EAAc,OAAO,GAAnB,WAAqB,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAY,OAAO,GAAjB,SAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAE,EAAE,cAAc,OAAO,EAAE,cAAc,OAAO,EAAE,WAAW,KAAK,GAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,IAAM,GAAQ,IAAN,IAAQ,EAAG,EAAG,GAAQ,IAAN,IAAQ,EAAG,EAAG,EAAQ,IAAN,IAAQ,SAAS,QAAQ,EAAE,EAAE,GAAG,GAAE,EAAE,EAAE,IAAG,GAAE,EAAE,EAAE,IAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAE,EAAE,SAAS,MAAM,GAAE,GAAG,GAAE,GAAG,EAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAE,EAAE,cAAc,oBAAoB,EAAE,cAAc,oBAAoB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,GAAE,IAAG,GAAE,GAAE,IAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAE,EAAE,EAAE,GAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAE,EAAE,EAAE,EAAE,SAAS,GAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAE,EAAE,SAAS,GAAE,EAAE,GAAE,EAAE,SAAS,GAAE,EAAE,SAAS,OAAO,GAAG,EAAE,SAAS,KAAK,EAAE,GAAE,GAAQ,IAAN,IAAQ,GAAE,WAAW,EAAE,GAAE,YAAY,EAAE,EAAE,EAAiB,KAAW,IAAM,EAAE,GAAE,EAAE,GAAE,EAAE,GAAE,GAAG,EAAE,GAAG,GAAE,EAAE,GAAE,EAAE,EAAC,EAAE,GAAE,EAAE,EAAE,GAAG,GAAE,EAAC,EAAE,EAAC,EAAE,EAAE,GAAG,GAAE,GAAE,GAAG,GAAE,CAAC,CAAC,GAAG,EAAE,CAAC,IAAM,GAAQ,IAAN,IAAQ,EAAG,EAAG,GAAS,IAAN,IAAQ,EAAG,EAAG,GAAG,EAAE,GAAG,GAAS,IAAN,IAAQ,SAAS,QAAQ,GAAG,GAAG,EAAE,IAAG,GAAG,GAAG,EAAE,IAAI,GAAQ,CAAC,EAAG,CAAE,EAAE,QAAQ,CAAC,IAAtB,GAAwB,GAAkB,KAAW,IAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAG,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAE,GAAG,GAAG,EAAE,CAAC,EAAE,cAAc,GAAG,EAAC,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,CAAU,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAG,CAAC,EAAE,EAAE,EAAG,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAW,IAAJ,GAAW,IAAJ,CAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAe,EAAG,CAAC,IAAb,QAAgB,GAAG,CAAC,KAAK,GAAG,EAAE,KAAK,EAAG,CAAC,GAAG,EAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,WAAW,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,SAAS,UAAU,CAAC,EAAE,SAAS,UAAU,EAAE,SAAS,IAAI,CAAyE,MAAM,CAAC,IAApB,SAAoB,EAAE,KAAK,SAAS,EAAE,CAAC,MAAM,EAAE,GAAe,OAAO,EAAE,uBAArB,WAA2C,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAU,IAAT,IAAK,KAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAW,IAAT,IAAK,GAAM,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,EAAW,IAAT,IAAK,GAAM,GAAG,EAAE,OAAO,SAAS,EAAE,EAAE,EAAE,CAAU,IAAT,IAAK,KAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,SAAS,iBAAiB,CAAC,EAAE,QAAQ,OAAO,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,SAAS,EAAE,CAAC,IAAI,EAAc,OAAO,GAAnB,WAAqB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,eAAe,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,OAAO,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,MAAO,GAAE,EAAE,MAAM,EAAE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,OAAO,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,MAAO,GAAE,iBAAiB,EAAE,OAAO,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,iBAAiB,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAW,IAAT,IAAK,GAAM,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAe,OAAO,GAAnB,WAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,CAAC,EAAY,EAAE,QAAQ,WAApB,OAA4B,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,UAAU,EAAE,iBAAiB,QAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,cAAc,EAAE,MAAM,OAAO,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,iBAAiB,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,iBAAiB,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAW,IAAT,IAAK,GAAM,CAAC,EAAE,EAAE,EAAE,EAAE,KAAiB,OAAO,GAAnB,aAAuB,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,QAAQ,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,MAAO,CAAI,IAAE,IAAI,QAAQ,SAAS,EAAE,CAAC,QAAQ,QAAQ,EAAE,KAAK,UAAU,CAAC,EAAE,IAAK,GAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAC,GAAG,QAAQ,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAM,GAAG,OAAO,OAAO,OAAO,eAAe,CAAC,UAAU,KAAK,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,EAAG,gBAAgB,GAAG,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,GAAG,IAAI,EAAG,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAG,KAAK,GAAG,eAAe,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,EAAG,MAAM,GAAG,IAAI,EAAG,oBAAoB,GAAG,SAAS,GAAG,MAAM,EAAE,EAAE,OAAO,YAAY,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAgB,GAAG,eAAe,GAAG,YAAyB,GAAG,YAAY,GAAG,OAAO,KAAK,GAAG,SAAS,KAAK,GAAG,OAAO,KAAK,GAAG,QAAQ,KAAK,GAAG,QAAQ,KAAK,KAAK,GAAG,UAAU,KAAK,KAAK,GAAG,QAAQ,KAAK,KAAK,GAAG,OAAO,GAAG,4DAA4D,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,iBAAiB,GAAG,EAAE,EAAE,UAAU,YAAY,GAAG,EAAE,EAAE,YAAY,UAAU,GAAG,EAAE,EAAE,aAAa,eAAe,GAAG,EAAE,EAAE,eAAe,aAAa,GAAG,EAAE,EAAE,aAAa,cAAc,GAAG,EAAE,EAAE,cAAc,aAAa,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,kBAAkB,QAAQ,UAAU,OAAO,CAAC,EAAE,CAAC,EAAE,aAAa,KAAK,UAAU,QAAQ,EAAE,GAAG,CAAC,UAAU,mBAAmB,SAAS,mBAAmB,QAAQ,SAAS,OAAO,0BAA0B,aAAa,yBAAyB,UAAU,yBAAyB,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,SAAS,WAAW,KAAK,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,OAAO,EAAE,KAAK,UAAU,KAAK,cAAc,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAO,UAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,QAAQ,GAAG,KAAK,SAAS,EAAE,OAAO,IAAM,EAAE,CAAC,cAAc,KAAK,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,EAAE,iBAAiB,CAAC,GAAG,KAAK,cAAc,EAAE,iBAAiB,SAAS,iBAAiB,CAAC,KAAK,QAAQ,QAAQ,aAAa,EAAE,IAAI,IAAM,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,SAAS,MAAM,EAAE,KAAK,SAAS,aAAa,gBAAgB,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,IAAI,EAAE,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,KAAK,SAAS,EAAE,OAAO,IAAM,EAAE,CAAC,cAAc,KAAK,QAAQ,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,KAAK,QAAQ,QAAQ,EAAE,MAAM,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,UAAU,KAAK,cAAc,EAAE,KAAK,SAAS,KAAK,QAAQ,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,EAAE,iBAAiB,CAAC,GAAG,iBAAiB,SAAS,gBAAgB,IAAI,IAAM,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,KAAK,SAAS,KAAK,QAAQ,QAAQ,EAAE,KAAK,MAAM,UAAU,OAAO,EAAE,EAAE,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,KAAK,SAAS,aAAa,gBAAgB,OAAO,EAAE,GAAE,oBAAoB,KAAK,MAAM,QAAQ,EAAE,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAa,OAAO,EAAE,MAAM,WAAW,CAAC,GAAG,WAAxC,UAAmD,CAAC,EAAE,EAAE,SAAS,GAAe,OAAO,EAAE,UAAU,uBAA/B,WAAqD,MAAU,UAAU,wGAAmH,EAAE,OAAO,CAAC,CAAC,eAAe,CAAC,GAAY,KAAT,IAAK,GAAO,MAAU,UAAU,uEAAuE,EAAE,IAAI,EAAE,KAAK,SAAoB,KAAK,QAAQ,YAAxB,SAAkC,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,SAAS,EAAE,EAAE,EAAE,KAAK,QAAQ,SAAS,EAAY,OAAO,KAAK,QAAQ,WAA9B,WAA0C,EAAE,KAAK,QAAQ,WAAW,IAAM,EAAE,KAAK,iBAAiB,EAAE,KAAK,QAAQ,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,MAAM,UAAU,SAAS,EAAE,CAAC,CAAC,eAAe,CAAC,IAAM,EAAE,KAAK,QAAQ,GAAG,EAAE,UAAU,SAAS,SAAS,EAAE,OAAO,GAAG,GAAG,EAAE,UAAU,SAAS,WAAW,EAAE,OAAO,GAAG,GAAG,EAAE,UAAU,SAAS,eAAe,EAAE,MAAM,MAAM,GAAG,EAAE,UAAU,SAAS,iBAAiB,EAAE,MAAM,SAAS,IAAM,EAAU,iBAAiB,KAAK,KAAK,EAAE,iBAAiB,eAAe,EAAE,KAAK,IAA5E,MAA8E,OAAO,EAAE,UAAU,SAAS,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAc,KAAK,SAAS,QAAQ,SAAS,IAAtC,IAAuC,CAAC,YAAY,CAAC,GAAK,CAAC,OAAO,GAAG,KAAK,QAAQ,OAAgB,OAAO,GAAjB,SAAmB,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC,EAAc,OAAO,GAAnB,WAAqB,GAAG,EAAE,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAM,EAAE,CAAC,UAAU,KAAK,cAAc,EAAE,UAAU,CAAC,CAAC,KAAK,kBAAkB,QAAQ,CAAC,SAAS,KAAK,QAAQ,QAAQ,CAAC,EAAE,CAAC,KAAK,SAAS,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,WAAsB,KAAK,QAAQ,UAAxB,YAAmC,GAAE,iBAAiB,KAAK,MAAM,SAAS,QAAQ,EAAE,EAAE,UAAU,CAAC,CAAC,KAAK,cAAc,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,QAAQ,aAAa,CAAC,IAAK,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,IAAM,EAAE,EAAE,KAAK,8DAA8D,KAAK,KAAK,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,GAAS,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,EAAE,CAAC,GAAO,EAAE,SAAN,GAAwB,EAAE,OAAZ,SAA0B,EAAE,MAAV,MAAc,OAAO,IAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,GAAG,YAAY,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,UAAU,SAAS,IAAM,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAA6G,GAAxG,EAAE,SAAS,EAAE,QAAQ,GAAc,EAAE,QAAQ,YAArB,UAAgC,CAAC,GAAe,EAAE,QAAQ,YAAtB,WAAiC,GAAc,EAAE,MAAM,SAAS,EAAE,MAAM,IAAc,EAAE,OAAZ,SAA0B,EAAE,MAAV,OAAe,qCAAqC,KAAK,EAAE,OAAO,OAAO,GAAG,SAAS,IAAM,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAY,EAAE,OAAZ,UAAmB,EAAE,WAAW,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,sBAAsB,EAAE,CAAC,IAAM,EAAE,kBAAkB,KAAK,EAAE,OAAO,OAAO,EAAE,EAAa,EAAE,MAAb,SAAiB,EAAE,CAAC,UAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAmB,GAAd,CAAC,GAAG,CAAC,GAAY,GAAG,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAM,EAAE,KAAK,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,eAAe,UAAU,EAAE,EAAE,GAAG,oBAAoB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,EAAE,EAAE,SAAS,IAAI,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,GAAG,GAAG,qBAAqB,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,GAAG,qBAAqB,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,UAAU,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,UAAU,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,GAAG,oBAAoB,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAM,GAAG,WAAW,GAAG,OAAO,GAAG,gBAAgB,KAAK,GAAG,CAAC,UAAU,iBAAiB,cAAc,KAAK,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,MAAM,EAAE,GAAG,CAAC,UAAU,SAAS,cAAc,kBAAkB,WAAW,UAAU,UAAU,UAAU,YAAY,kBAAkB,EAAE,MAAM,WAAW,EAAC,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,WAAW,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,QAAQ,UAAU,OAAO,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,IAAM,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,YAAY,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,KAAK,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,WAAW,KAAK,YAAY,EAAE,UAAU,OAAO,EAAE,EAAE,KAAK,sBAAsB,CAAC,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,AAAkE,KAAK,eAApD,EAAE,IAAI,KAAK,SAAS,EAAE,EAAE,KAAK,SAAS,OAAO,EAAmB,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAM,EAAE,SAAS,cAAc,KAAK,EAAE,EAAE,UAAU,KAAK,QAAQ,UAAU,KAAK,QAAQ,YAAY,EAAE,UAAU,IAAI,MAAM,EAAE,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAO,GAAE,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,YAAY,OAAO,IAAM,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,YAAY,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,KAAK,QAAQ,aAAa,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,KAAK,YAAY,EAAE,KAAK,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAM,GAAG,gBAAgB,GAAG,UAAU,KAAK,GAAG,cAAc,KAAK,GAAG,WAAW,GAAG,CAAC,UAAU,CAAC,EAAE,YAAY,IAAI,EAAE,GAAG,CAAC,UAAU,UAAU,YAAY,SAAS,EAAE,MAAM,WAAW,EAAC,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,WAAW,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,KAAK,qBAAqB,IAAI,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,AAAqL,KAAK,aAAzK,KAAK,QAAQ,WAAW,KAAK,QAAQ,YAAY,MAAM,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,KAAK,eAAe,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,KAAK,eAAe,CAAC,CAAC,EAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,YAAY,KAAK,UAAU,CAAC,EAAE,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC,GAAK,CAAC,YAAY,GAAG,KAAK,QAAQ,GAAG,EAAE,SAAS,UAAU,EAAE,SAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,IAAM,EAAE,EAAE,kBAAkB,CAAC,EAAM,EAAE,SAAN,EAAa,EAAE,MAAM,EAAE,KAAK,uBAAuB,GAAG,EAAE,EAAE,OAAO,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,eAAe,EAAE,CAAS,EAAE,MAAV,QAAgB,KAAK,qBAAqB,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC,IAAM,GAAG,oDAAoD,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,SAAS,SAAS,IAAI,CAAC,UAAU,CAAC,IAAM,EAAE,SAAS,gBAAgB,YAAY,OAAO,KAAK,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,KAAK,SAAS,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,sBAAsB,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,sBAAsB,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,wBAAwB,KAAK,SAAS,UAAU,EAAE,KAAK,wBAAwB,KAAK,SAAS,EAAE,EAAE,KAAK,wBAAwB,GAAG,EAAE,EAAE,KAAK,wBAAwB,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,KAAK,sBAAsB,KAAK,SAAS,UAAU,EAAE,KAAK,SAAS,MAAM,SAAS,QAAQ,CAAC,sBAAsB,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,SAAS,EAAE,KAAK,2BAA2B,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,UAAU,OAAO,WAAW,EAAE,YAAY,EAAE,OAAO,KAAK,sBAAsB,EAAE,CAAC,EAAE,IAAM,EAAE,OAAO,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,MAAM,YAAY,EAAE,GAAG,EAAE,OAAO,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,MAAM,iBAAiB,CAAC,EAAE,GAAG,GAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,EAAE,CAAC,KAAK,2BAA2B,EAAE,GAAG,CAAC,IAAM,EAAE,GAAE,iBAAiB,EAAE,CAAC,EAAS,IAAP,KAA+D,EAAE,MAAM,eAAe,CAAC,GAA7E,GAAE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,YAAY,EAAE,CAAC,EAA4B,CAAC,CAAC,CAAC,2BAA2B,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,IAAM,KAAK,EAAE,KAAK,EAAE,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAM,EAAG,YAAY,GAAG,OAAO,IAAK,GAAG,gBAAgB,IAAK,GAAG,SAAS,IAAK,GAAG,OAAO,IAAK,GAAG,QAAQ,IAAK,GAAG,SAAS,IAAK,GAAG,gBAAgB,IAAK,GAAG,oBAAoB,IAAK,GAAG,kBAAkB,IAAK,GAAG,QAAQ,EAAG,WAAW,GAAG,aAAa,GAAG,OAAO,GAAG,eAAe,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,mBAAmB,MAAM,UAAU,SAAS,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,QAAQ,EAAE,QAAQ,gBAAgB,KAAK,QAAQ,EAAE,KAAK,UAAU,KAAK,oBAAoB,EAAE,KAAK,WAAW,KAAK,qBAAqB,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,KAAK,WAAW,IAAI,GAAG,KAAK,mBAAmB,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,KAAK,kBAAkB,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,mBAAmB,KAAK,SAAS,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,KAAK,WAAW,KAAK,EAAE,SAAS,KAAK,UAAU,IAAI,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,SAAS,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,KAAK,mBAAmB,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,mBAAmB,KAAK,SAAS,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,KAAK,WAAW,WAAW,EAAE,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,KAAK,mBAAmB,KAAK,WAAW,EAAE,KAAK,SAAS,KAAK,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,OAAO,CAAE,EAAE,EAAE,IAAI,KAAK,QAAQ,CAAE,EAAE,KAAK,UAAU,QAAQ,EAAE,KAAK,WAAW,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,CAAC,qBAAqB,CAAC,OAAO,IAAI,GAAG,CAAC,UAAU,EAAQ,KAAK,QAAQ,SAAU,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,SAAS,KAAK,SAAS,KAAK,QAAQ,GAAG,SAAS,KAAK,OAAO,KAAK,QAAQ,EAAE,KAAK,SAAS,MAAM,QAAQ,QAAQ,KAAK,SAAS,gBAAgB,aAAa,EAAE,KAAK,SAAS,aAAa,aAAa,CAAC,CAAC,EAAE,KAAK,SAAS,aAAa,OAAO,QAAQ,EAAE,KAAK,SAAS,UAAU,EAAE,IAAM,EAAE,EAAE,QAAQ,cAAc,KAAK,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,mBAAmB,CAAC,KAAK,QAAQ,OAAO,KAAK,WAAW,SAAS,EAAE,KAAK,iBAAiB,CAAC,EAAE,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,CAAY,EAAE,MAAb,WAAmB,KAAK,QAAQ,SAAS,KAAK,KAAK,EAAE,KAAK,2BAA2B,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC,KAAK,kBAAkB,KAAK,cAAc,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,CAAC,EAAE,IAAI,KAAK,SAAS,GAAG,GAAG,CAAC,KAAK,WAAW,EAAE,QAAQ,KAAK,WAAW,EAAE,SAAoB,KAAK,QAAQ,WAAxB,SAAoE,KAAK,2BAA2B,EAAnE,KAAK,QAAQ,UAAU,KAAK,KAAK,EAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,SAAS,MAAM,QAAQ,OAAO,KAAK,SAAS,aAAa,cAAc,CAAC,CAAC,EAAE,KAAK,SAAS,gBAAgB,YAAY,EAAE,KAAK,SAAS,gBAAgB,MAAM,EAAE,KAAK,iBAAiB,CAAC,EAAE,KAAK,UAAU,SAAS,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,MAAM,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,SAAS,UAAU,SAAS,MAAM,CAAC,CAAC,4BAA4B,CAAC,GAAG,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,iBAAiB,OAAO,IAAM,EAAE,KAAK,SAAS,aAAa,SAAS,gBAAgB,aAAa,EAAE,KAAK,SAAS,MAAM,UAAqB,IAAX,UAAc,KAAK,SAAS,UAAU,SAAS,EAAE,IAAI,IAAI,KAAK,SAAS,MAAM,UAAU,UAAU,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,mBAAmB,CAAC,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,KAAK,mBAAmB,CAAC,KAAK,SAAS,MAAM,UAAU,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,MAAM,EAAE,CAAC,eAAe,CAAC,IAAM,EAAE,KAAK,SAAS,aAAa,SAAS,gBAAgB,aAAa,EAAE,KAAK,WAAW,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAM,EAAE,EAAE,EAAE,cAAc,eAAe,KAAK,SAAS,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAM,EAAE,EAAE,EAAE,eAAe,cAAc,KAAK,SAAS,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,mBAAmB,CAAC,KAAK,SAAS,MAAM,YAAY,GAAG,KAAK,SAAS,MAAM,aAAa,EAAE,CAAC,OAAO,gBAAgB,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,GAAS,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,2BAA2B,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,uBAAuB,IAAI,EAAE,CAAC,IAAI,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAM,EAAE,EAAE,QAAQ,aAAa,EAAE,GAAG,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAM,GAAG,gBAAgB,GAAG,YAAY,GAAG,OAAO,KAAK,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,kBAAkB,GAAG,OAAO,KAAK,GAAG,QAAQ,KAAK,GAAG,OAAO,KAAK,GAAG,gBAAgB,KAAK,GAAG,SAAS,KAAK,GAAG,SAAS,KAAK,GAAG,QAAQ,KAAK,KAAK,GAAG,kBAAkB,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,mBAAmB,SAAS,UAAU,OAAO,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,UAAU,KAAK,oBAAoB,EAAE,KAAK,WAAW,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,mBAAmB,KAAK,SAAS,CAAC,EAAE,KAAK,UAAU,KAAK,EAAE,KAAK,QAAQ,QAAS,IAAI,GAAC,EAAG,KAAK,EAAE,KAAK,SAAS,aAAa,aAAa,CAAC,CAAC,EAAE,KAAK,SAAS,aAAa,OAAO,QAAQ,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,mBAAmB,CAAC,KAAK,QAAQ,QAAQ,CAAC,KAAK,QAAQ,UAAU,KAAK,WAAW,SAAS,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,mBAAmB,KAAK,WAAW,WAAW,EAAE,KAAK,SAAS,KAAK,EAAE,KAAK,SAAS,CAAC,EAAE,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,UAAU,KAAK,EAAE,KAAK,mBAAmB,CAAC,KAAK,SAAS,UAAU,OAAO,GAAG,EAAE,EAAE,KAAK,SAAS,gBAAgB,YAAY,EAAE,KAAK,SAAS,gBAAgB,MAAM,EAAE,KAAK,QAAQ,QAAS,IAAI,GAAC,EAAG,MAAM,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,UAAU,QAAQ,EAAE,KAAK,WAAW,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,qBAAqB,CAAC,IAAM,EAAE,EAAQ,KAAK,QAAQ,SAAU,OAAO,IAAI,GAAG,CAAC,UAAU,qBAAqB,UAAU,EAAE,WAAW,CAAC,EAAE,YAAY,KAAK,SAAS,WAAW,cAAc,MAAM,CAAY,KAAK,QAAQ,WAAxB,SAA6C,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAtC,KAAK,KAAK,CAA6B,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,CAAY,EAAE,MAAb,WAAmB,KAAK,QAAQ,SAAS,KAAK,KAAK,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,IAAU,EAAE,WAAW,GAAG,GAAmB,IAAhB,cAAkB,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,+BAA+B,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,uBAAuB,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,IAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,oBAAoB,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,IAAI,IAAM,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,IAAI,IAAM,KAAK,EAAE,KAAK,8CAA8C,EAAY,iBAAiB,CAAC,EAAE,WAA9B,SAAwC,GAAG,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,MAAM,KAAK,OAAO,OAAO,gBAAgB,EAAE,EAAE,CAAC,SAAS,OAAO,QAAQ,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,SAAS,MAAM,QAAQ,QAAQ,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,OAAO,OAAO,WAAW,WAAW,SAAS,MAAM,YAAY,CAAC,EAAE,GAAG,0DAA0D,IAAI,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,SAAS,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAQ,GAAG,KAAK,EAAE,SAAS,EAAG,EAAE,OAAO,GAAG,aAAa,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,WAAW,KAAK,SAAS,aAAa,EAAE,GAAG,CAAC,UAAU,SAAS,QAAQ,SAAS,WAAW,oBAAoB,KAAK,UAAU,SAAS,UAAU,WAAW,kBAAkB,SAAS,QAAQ,EAAE,GAAG,CAAC,MAAM,iCAAiC,SAAS,kBAAkB,EAAE,MAAM,WAAW,EAAC,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,iBAAiB,CAAC,YAAY,CAAC,OAAO,OAAO,OAAO,KAAK,QAAQ,OAAO,EAAE,IAAI,GAAG,KAAK,yBAAyB,CAAC,CAAC,EAAE,OAAO,OAAO,CAAC,CAAC,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,OAAO,KAAK,cAAc,CAAC,EAAE,KAAK,QAAQ,QAAQ,CAAC,GAAG,KAAK,QAAQ,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAM,EAAE,SAAS,cAAc,KAAK,EAAE,EAAE,UAAU,KAAK,eAAe,KAAK,QAAQ,QAAQ,EAAE,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,KAAK,QAAQ,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,CAAC,EAAE,IAAM,EAAE,EAAE,SAAS,GAAG,EAAE,KAAK,yBAAyB,KAAK,QAAQ,UAAU,EAAE,OAAO,GAAG,EAAE,UAAU,IAAI,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,MAAM,iBAAiB,CAAC,EAAE,KAAK,cAAc,EAAE,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,CAAC,EAAE,MAAM,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,IAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,yBAAyB,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,sBAAsB,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,KAAK,EAAE,UAAU,KAAK,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,KAAK,QAAQ,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,EAAE,GAAG,GAAe,OAAO,GAAnB,WAAqB,OAAO,EAAE,CAAC,EAAE,IAAM,EAAG,IAAI,OAAO,UAAQ,EAAG,gBAAgB,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,KAAK,iBAAiB,GAAG,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,IAAM,EAAE,EAAE,SAAS,YAAY,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAM,EAAE,CAAC,EAAE,OAAO,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,EAAE,KAAK,QAAQ,UAAU,KAAK,QAAQ,UAAU,EAAE,CAAC,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAK,GAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,KAAK,MAAO,GAAE,UAAU,GAAG,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,IAAM,GAAG,IAAI,IAAI,CAAC,WAAW,YAAY,YAAY,CAAC,EAAE,GAAG,OAAO,GAAG,OAA2B,GAAG,SAAS,GAAG,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,KAAK,OAAO,IAAI,MAAM,MAAM,EAAE,EAAE,OAAO,QAAQ,OAAO,SAAS,KAAK,EAAE,EAAE,QAAQ,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,SAAS,kBAAkB,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,mBAAmB,CAAC,MAAM,QAAQ,SAAS,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,MAAM,aAAa,KAAK,SAAS,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC,EAAE,SAAS,+GAA+G,MAAM,GAAG,QAAQ,aAAa,EAAE,GAAG,CAAC,UAAU,SAAS,UAAU,UAAU,SAAS,mBAAmB,UAAU,2BAA2B,YAAY,oBAAoB,MAAM,kBAAkB,mBAAmB,QAAQ,KAAK,UAAU,OAAO,0BAA0B,UAAU,oBAAoB,aAAa,yBAAyB,SAAS,UAAU,WAAW,kBAAkB,SAAS,mBAAmB,SAAS,SAAS,MAAM,4BAA4B,QAAQ,QAAQ,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,GAAY,KAAT,IAAK,GAAO,MAAU,UAAU,sEAAsE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,KAAK,KAAK,eAAe,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,iBAAiB,KAAK,KAAK,YAAY,KAAK,KAAK,IAAI,KAAK,KAAK,cAAc,EAAE,KAAK,QAAQ,UAAU,KAAK,UAAU,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,KAAK,aAAa,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC,SAAS,CAAC,aAAa,KAAK,QAAQ,EAAE,EAAE,IAAI,KAAK,SAAS,QAAQ,EAAE,EAAE,GAAG,KAAK,iBAAiB,EAAE,KAAK,SAAS,aAAa,wBAAwB,GAAG,KAAK,SAAS,aAAa,QAAQ,KAAK,SAAS,aAAa,wBAAwB,CAAC,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAY,KAAK,SAAS,MAAM,UAA7B,OAAqC,MAAU,MAAM,qCAAqC,EAAE,GAAG,CAAC,KAAK,eAAe,GAAG,CAAC,KAAK,WAAW,OAAO,IAAM,EAAE,EAAE,QAAQ,KAAK,SAAS,KAAK,YAAY,UAAU,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,QAAQ,GAAG,KAAK,SAAS,cAAc,iBAAiB,SAAS,KAAK,QAAQ,EAAE,GAAG,EAAE,kBAAkB,CAAC,EAAE,OAAO,KAAK,eAAe,EAAE,IAAM,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,aAAa,mBAAmB,EAAE,aAAa,IAAI,CAAC,EAAE,GAAK,CAAC,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,SAAS,cAAc,gBAAgB,SAAS,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,KAAK,SAAS,KAAK,YAAY,UAAU,UAAU,CAAC,GAAG,KAAK,QAAQ,KAAK,cAAc,CAAC,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,iBAAiB,SAAS,gBAAgB,IAAI,IAAM,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,KAAK,mBAAmB,CAAC,EAAE,QAAQ,KAAK,SAAS,KAAK,YAAY,UAAU,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,KAAK,OAAO,EAAE,KAAK,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,GAAG,CAAC,EAAE,QAAQ,KAAK,SAAS,KAAK,YAAY,UAAU,MAAM,CAAC,EAAE,iBAAiB,CAAC,GAAG,KAAK,eAAe,EAAE,UAAU,OAAO,EAAE,EAAE,iBAAiB,SAAS,gBAAgB,IAAI,IAAM,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,KAAK,eAAe,IAAI,CAAC,EAAE,KAAK,eAAe,IAAI,CAAC,EAAE,KAAK,eAAe,IAAI,CAAC,EAAE,KAAK,WAAW,KAAK,KAAK,mBAAmB,CAAC,KAAK,qBAAqB,IAAI,KAAK,YAAY,KAAK,eAAe,EAAE,KAAK,SAAS,gBAAgB,kBAAkB,EAAE,EAAE,QAAQ,KAAK,SAAS,KAAK,YAAY,UAAU,QAAQ,CAAC,EAAE,EAAE,KAAK,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,KAAK,QAAQ,OAAO,CAAC,CAAC,gBAAgB,CAAC,MAAO,EAAQ,KAAK,UAAU,CAAE,CAAC,gBAAgB,CAAC,MAAO,CAAW,KAAK,MAAI,KAAK,kBAAkB,KAAK,aAAa,KAAK,uBAAuB,CAAC,EAAG,KAAK,GAAG,CAAC,kBAAkB,EAAE,CAAC,IAAM,EAAE,KAAK,oBAAoB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,EAAE,UAAU,OAAO,GAAG,EAAE,EAAE,EAAE,UAAU,IAAI,MAAM,KAAK,YAAY,KAAK,MAAM,EAAE,IAAM,GAAG,GAAG,CAAC,EAAG,IAAG,KAAK,MAAM,IAAI,KAAK,OAAO,CAAC,QAAQ,SAAS,eAAe,CAAC,GAAG,OAAO,CAAC,GAAG,KAAK,YAAY,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,KAAK,CAAC,EAAE,KAAK,YAAY,GAAG,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,YAAY,EAAE,KAAK,SAAS,IAAI,KAAK,eAAe,EAAE,KAAK,KAAK,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,KAAK,iBAAiB,KAAK,iBAAiB,cAAc,CAAC,EAAE,KAAK,iBAAiB,IAAI,GAAG,CAAC,GAAG,KAAK,QAAQ,QAAQ,EAAE,WAAW,KAAK,yBAAyB,KAAK,QAAQ,WAAW,CAAC,CAAC,EAAE,KAAK,gBAAgB,CAAC,wBAAwB,CAAC,MAAM,CAAE,iBAAI,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,yBAAyB,KAAK,QAAQ,KAAK,GAAG,KAAK,SAAS,aAAa,wBAAwB,CAAC,CAAC,6BAA6B,EAAE,CAAC,OAAO,KAAK,YAAY,oBAAoB,EAAE,eAAe,KAAK,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,WAAW,KAAK,KAAK,KAAK,IAAI,UAAU,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,KAAK,KAAK,KAAK,IAAI,UAAU,SAAS,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,IAAyD,EAAE,GAAnD,EAAE,KAAK,QAAQ,UAAU,CAAC,KAAK,EAAE,KAAK,QAAQ,CAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,KAAK,SAAS,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAK,CAAC,OAAO,GAAG,KAAK,QAAQ,OAAgB,OAAO,GAAjB,SAAmB,EAAE,MAAM,GAAG,EAAE,IAAI,GAAG,OAAO,SAAS,EAAE,EAAE,CAAC,EAAc,OAAO,GAAnB,WAAqB,GAAG,EAAE,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,KAAK,OAAO,QAAQ,CAAC,mBAAmB,KAAK,QAAQ,kBAAkB,CAAC,EAAE,CAAC,KAAK,SAAS,QAAQ,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,kBAAkB,QAAQ,CAAC,SAAS,KAAK,QAAQ,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,QAAQ,CAAC,QAAQ,IAAI,KAAK,YAAY,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,kBAAkB,QAAQ,CAAC,EAAE,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,eAAe,EAAE,aAAa,wBAAwB,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,QAAQ,aAAa,CAAC,IAAK,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAM,EAAE,KAAK,QAAQ,QAAQ,MAAM,GAAG,EAAE,IAAI,IAAM,KAAK,EAAE,GAAa,IAAV,QAAY,EAAE,GAAG,KAAK,SAAS,KAAK,YAAY,UAAU,OAAO,EAAE,KAAK,QAAQ,SAAS,GAAG,CAAC,IAAM,EAAE,KAAK,6BAA6B,CAAC,EAAE,EAAE,eAAe,IAAI,EAAE,EAAE,SAAS,GAAG,EAAE,eAAe,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,GAAc,IAAX,SAAa,CAAC,IAAM,EAAE,IAAI,GAAG,KAAK,YAAY,UAAU,YAAY,EAAE,KAAK,YAAY,UAAU,SAAS,EAAE,EAAE,IAAI,GAAG,KAAK,YAAY,UAAU,YAAY,EAAE,KAAK,YAAY,UAAU,UAAU,EAAE,EAAE,GAAG,KAAK,SAAS,EAAE,KAAK,QAAQ,SAAS,GAAG,CAAC,IAAM,EAAE,KAAK,6BAA6B,CAAC,EAAE,EAAE,eAA2B,EAAE,OAAd,UAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,EAAE,KAAK,QAAQ,SAAS,GAAG,CAAC,IAAM,EAAE,KAAK,6BAA6B,CAAC,EAAE,EAAE,eAA4B,EAAE,OAAf,WAAoB,GAAG,IAAI,EAAE,SAAS,SAAS,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,KAAK,UAAU,KAAK,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,QAAQ,EAAE,EAAE,GAAG,KAAK,iBAAiB,CAAC,CAAC,WAAW,CAAC,IAAM,EAAE,KAAK,SAAS,aAAa,OAAO,EAAE,IAAI,KAAK,SAAS,aAAa,YAAY,GAAG,KAAK,SAAS,YAAY,KAAK,GAAG,KAAK,SAAS,aAAa,aAAa,CAAC,EAAE,KAAK,SAAS,aAAa,yBAAyB,CAAC,EAAE,KAAK,SAAS,gBAAgB,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,GAAG,KAAK,WAAW,KAAK,WAAW,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE,KAAK,gBAAgB,CAAC,KAAK,YAAY,KAAK,KAAK,CAAC,EAAE,KAAK,QAAQ,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,qBAAqB,IAAI,KAAK,WAAW,CAAC,EAAE,KAAK,gBAAgB,CAAC,KAAK,YAAY,KAAK,KAAK,CAAC,EAAE,KAAK,QAAQ,MAAM,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,aAAa,KAAK,QAAQ,EAAE,KAAK,SAAS,WAAW,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,OAAO,OAAO,KAAK,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAM,EAAE,GAAE,kBAAkB,KAAK,QAAQ,EAAE,IAAI,IAAM,KAAK,OAAO,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,MAAO,GAAE,CAAC,GAAG,EAAE,GAAa,OAAO,GAAjB,UAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,gBAAgB,CAAC,EAAE,EAAE,KAAK,kBAAkB,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,MAAO,GAAE,UAAU,CAAC,IAAI,EAAE,UAAU,SAAS,KAAK,EAAE,EAAE,SAAS,EAAY,OAAO,EAAE,OAAnB,WAA2B,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,EAAE,KAAK,GAAa,OAAO,EAAE,OAAnB,WAA2B,EAAE,MAAM,EAAE,MAAM,SAAS,GAAa,OAAO,EAAE,SAAnB,WAA6B,EAAE,QAAQ,EAAE,QAAQ,SAAS,GAAG,CAAC,CAAC,oBAAoB,CAAC,IAAM,EAAE,CAAC,EAAE,IAAI,GAAK,CAAC,EAAE,KAAK,OAAO,QAAQ,KAAK,OAAO,EAAE,KAAK,YAAY,QAAQ,KAAK,IAAI,EAAE,GAAG,GAAG,MAAO,GAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,SAAS,CAAC,CAAC,gBAAgB,CAAC,AAAsC,KAAK,WAA5B,KAAK,QAAQ,QAAQ,EAAe,MAAM,AAA6B,KAAK,OAAvB,KAAK,IAAI,OAAO,EAAW,KAAK,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,GAAS,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAA8C,GAAG,CAAC,GAAG,GAAG,QAAQ,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,QAAQ,SAAS,8IAA8I,QAAQ,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,YAAY,QAAQ,gCAAgC,EAAE,MAAM,WAAW,EAAE,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,SAAS,CAAC,gBAAgB,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,YAAY,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAE,kBAAI,KAAK,UAAU,EAAG,gBAAI,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,yBAAyB,KAAK,QAAQ,OAAO,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,GAAS,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAM,GAAG,gBAAgB,GAAG,WAAW,KAAK,GAAG,QAAQ,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,GAAG,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,CAAC,OAAO,KAAK,WAAW,eAAe,aAAa,CAAC,EAAE,OAAO,KAAK,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,gBAAgB,WAAW,SAAS,aAAa,UAAU,OAAO,UAAU,UAAU,OAAO,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,aAAa,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,aAAyB,iBAAiB,KAAK,QAAQ,EAAE,YAA5C,UAAsD,KAAK,KAAK,SAAS,KAAK,cAAc,KAAK,KAAK,UAAU,KAAK,KAAK,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,iCAAiC,EAAE,KAAK,yBAAyB,EAAE,KAAK,UAAU,KAAK,UAAU,WAAW,EAAE,KAAK,UAAU,KAAK,gBAAgB,EAAE,IAAI,IAAM,KAAK,KAAK,oBAAoB,OAAO,EAAE,KAAK,UAAU,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,UAAU,WAAW,EAAE,MAAM,QAAQ,CAAC,CAAC,kBAAkB,EAAE,CAAC,MAAO,GAAE,OAAO,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,OAAO,aAAa,EAAE,WAAqB,OAAO,EAAE,WAAnB,WAA+B,EAAE,UAAU,EAAE,UAAU,MAAM,GAAG,EAAE,IAAI,GAAG,OAAO,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,0BAA0B,CAAC,KAAK,QAAQ,eAAe,EAAE,IAAI,KAAK,QAAQ,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,QAAQ,OAAO,GAAG,GAAG,GAAG,CAAC,IAAM,EAAE,KAAK,oBAAoB,IAAI,EAAE,OAAO,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,IAAM,EAAE,KAAK,cAAc,OAAO,EAAE,EAAE,UAAU,KAAK,SAAS,UAAU,GAAG,EAAE,SAAS,OAAO,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAM,EAAE,CAAC,KAAK,KAAK,aAAa,UAAU,KAAK,QAAQ,UAAU,WAAW,KAAK,QAAQ,UAAU,EAAE,OAAO,IAAI,qBAAqB,GAAG,KAAK,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,IAAM,EAAE,GAAG,KAAK,aAAa,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,oBAAoB,gBAAgB,EAAE,OAAO,UAAU,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,cAAc,SAAS,iBAAiB,UAAU,EAAE,GAAG,KAAK,oBAAoB,gBAAgB,KAAK,oBAAoB,gBAAgB,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,KAAK,cAAc,KAAK,KAAK,kBAAkB,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAM,EAAE,EAAE,OAAO,WAAW,KAAK,oBAAoB,gBAAgB,GAAG,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAA,MAAY,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,KAAK,aAAa,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,IAAM,EAAE,EAAE,KAAK,GAAG,KAAK,QAAQ,MAAM,EAAE,IAAI,IAAM,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,IAAM,EAAE,EAAE,QAAQ,UAAU,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE,EAAE,CAAC,IAAI,KAAK,aAAa,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,oBAAoB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,gBAAgB,IAAI,KAAK,kBAAkB,KAAK,QAAQ,MAAM,EAAE,KAAK,cAAc,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,KAAK,iBAAiB,CAAC,EAAE,EAAE,QAAQ,KAAK,SAAS,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,SAAS,eAAe,EAAE,EAAE,QAAQ,mBAAmB,EAAE,QAAQ,WAAW,CAAC,EAAE,UAAU,IAAI,EAAE,OAAO,IAAI,IAAM,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,IAAM,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,OAAO,EAAE,EAAE,IAAM,EAAE,EAAE,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,IAAM,KAAK,EAAE,EAAE,UAAU,OAAO,EAAE,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,IAAU,EAAE,WAAW,GAAG,GAAmB,IAAhB,cAAkB,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,OAAO,CAAC,IAAI,IAAM,KAAK,EAAE,KAAK,wBAAwB,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAM,GAAG,UAAU,GAAG,OAAO,KAAK,GAAG,SAAS,KAAK,GAAG,OAAO,KAAK,GAAG,QAAQ,KAAK,GAAG,QAAQ,KAAK,GAAG,UAAU,KAAK,GAAG,OAAO,KAAoB,GAAG,aAA0B,GAAG,YAAY,GAAG,OAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,mBAAmB,GAAG,QAAQ,GAAG,GAAG,GAAG,2EAA2E,GAAG,YAAY,GAAG,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,KAAK,GAAG,IAAI,GAAG,2BAA2B,GAAG,4BAA4B,GAAG,yBAAyB,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,KAAK,SAAS,QAAQ,qCAAqC,EAAE,KAAK,UAAU,KAAK,sBAAsB,KAAK,QAAQ,KAAK,aAAa,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAM,EAAE,KAAK,SAAS,GAAG,KAAK,cAAc,CAAC,EAAE,OAAO,IAAM,EAAE,KAAK,eAAe,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,kBAAkB,GAAG,EAAE,mBAAmB,KAAK,YAAY,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,KAAK,UAAU,EAAE,uBAAuB,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAS,EAAE,aAAa,MAAM,IAA7B,OAAgC,EAAE,gBAAgB,UAAU,EAAE,EAAE,aAAa,gBAAgB,CAAC,CAAC,EAAE,KAAK,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,KAAK,mBAAmB,CAAS,EAAE,aAAa,MAAM,IAA7B,OAAgC,EAAE,aAAa,gBAAgB,CAAC,CAAC,EAAE,EAAE,aAAa,WAAW,IAAI,EAAE,KAAK,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,UAAU,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,YAAG,GAAG,UAAG,GAAG,GAAG,KAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,eAAe,EAAE,IAAM,EAAE,KAAK,aAAa,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,EAAM,EAAE,GAAG,CAAC,GAAG,KAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,OAAO,CAAC,IAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,oBAAoB,CAAC,EAAE,KAAK,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,OAAO,CAAC,CAAC,gBAAgB,CAAC,OAAO,KAAK,aAAa,EAAE,KAAK,GAAG,KAAK,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC,KAAK,yBAAyB,EAAE,OAAO,SAAS,EAAE,IAAI,IAAM,KAAK,EAAE,KAAK,6BAA6B,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,IAAM,EAAE,KAAK,cAAc,CAAC,EAAE,EAAE,KAAK,iBAAiB,CAAC,EAAE,EAAE,aAAa,gBAAgB,CAAC,EAAE,IAAI,GAAG,KAAK,yBAAyB,EAAE,OAAO,cAAc,EAAE,GAAG,EAAE,aAAa,WAAW,IAAI,EAAE,KAAK,yBAAyB,EAAE,OAAO,KAAK,EAAE,KAAK,mCAAmC,CAAC,CAAC,CAAC,mCAAmC,EAAE,CAAC,IAAM,EAAE,EAAE,uBAAuB,CAAC,EAAE,IAAI,KAAK,yBAAyB,EAAE,OAAO,UAAU,EAAE,EAAE,IAAI,KAAK,yBAAyB,EAAE,kBAAkB,GAAG,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAM,EAAE,KAAK,iBAAiB,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,SAAS,UAAU,EAAE,OAAO,IAAM,GAAG,EAAE,IAAI,CAAC,IAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,QAAQ,6BAA6B,GAAG,CAAC,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,IAAI,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,IAAU,EAAE,WAAW,GAAG,GAAmB,IAAhB,cAAkB,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,GAAG,SAAS,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,EAAE,eAAe,EAAE,EAAE,IAAI,GAAG,GAAG,oBAAoB,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,OAAO,CAAC,IAAI,IAAM,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAM,GAAG,YAAY,GAAG,YAAY,KAAK,GAAG,WAAW,KAAK,GAAG,UAAU,KAAK,GAAG,WAAW,KAAK,GAAG,OAAO,KAAK,GAAG,SAAS,KAAK,GAAG,OAAO,KAAK,GAAG,QAAQ,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,UAAU,UAAU,SAAS,UAAU,MAAM,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,WAAW,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,SAAS,KAAK,KAAK,qBAAqB,CAAC,EAAE,KAAK,wBAAwB,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,WAAW,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,MAAM,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,mBAAmB,KAAK,cAAc,EAAE,KAAK,QAAQ,WAAW,KAAK,SAAS,UAAU,IAAI,MAAM,EAAE,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,UAAU,IAAI,GAAG,EAAE,EAAE,KAAK,mBAAmB,CAAC,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,KAAK,mBAAmB,CAAC,EAAE,KAAK,SAAS,KAAK,QAAQ,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,EAAE,QAAQ,KAAK,SAAS,EAAE,EAAE,mBAAmB,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,mBAAmB,CAAC,KAAK,SAAS,UAAU,IAAI,EAAE,EAAE,KAAK,SAAS,UAAU,OAAO,GAAG,EAAE,EAAE,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,SAAS,KAAK,QAAQ,SAAS,GAAG,CAAC,SAAS,CAAC,KAAK,cAAc,EAAE,KAAK,QAAQ,GAAG,KAAK,SAAS,UAAU,OAAO,EAAE,EAAE,MAAM,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,UAAU,SAAS,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,QAAQ,WAAW,KAAK,sBAAsB,KAAK,0BAA0B,KAAK,SAAS,eAAe,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,QAAQ,KAAK,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,OAAO,EAAE,KAAT,CAAe,IAAI,YAAY,IAAI,WAAW,KAAK,qBAAqB,EAAE,MAAM,IAAI,UAAU,IAAI,WAAW,KAAK,wBAAwB,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,cAAc,EAAE,IAAM,EAAE,EAAE,cAAc,KAAK,WAAW,GAAG,KAAK,SAAS,SAAS,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC,eAAe,CAAC,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,SAAS,GAAG,GAAG,KAAK,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,KAAK,QAAQ,EAAE,KAAK,SAAS,IAAI,CAAC,OAAO,gBAAgB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAM,EAAE,GAAG,oBAAoB,KAAK,CAAC,EAAE,GAAa,OAAO,GAAjB,SAAmB,CAAC,GAAY,EAAE,KAAX,IAAK,GAAS,MAAU,UAAU,oBAAoB,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,GAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC,QCOh18E,SAAgB,GAAc,EAAI,EAAS,GAAM,CAC/C,IAAM,EAAU,SAAS,eAAe,CAAE,EAGtC,EAAM,GAAS,cACnB,KAAO,GAAK,CAEV,IAAM,GAAS,EAAI,aAAa,OAAO,GAAK,IAAI,MAAM,eAAe,EACrE,GAAI,EAAO,CAET,IAAM,EAAQ,SAAS,cAAc,SAAS,GAAO,EACrD,GAAI,EAAO,CACT,EAAM,QAAU,GAChB,KACF,CACF,CACA,EAAM,EAAI,aACZ,CAGA,eAAiB,CACX,EACF,GAAS,eAAe,CAAE,SAAU,QAAS,CAAC,EAE9C,GAAS,eAAe,CAE5B,EAAG,CAAC,CACN,CAEA,SAAgB,GAAqB,EAAM,EAAO,EAAS,KAAU,GAAM,IAAW,CACpF,IAAM,EAAM,KAAK,KAAK,UAAU,CAAK,CAAC,EACtC,SAAS,OAAS,GAAG,EAAK,GAAG,EAAI,YAAY,EAAO,WAAW,GAAU,EAAE,wBAC7E,CAEA,SAAgB,GAAqB,EAAM,CACzC,IAAK,IAAM,KAAU,UAAU,QAAQ,MAAM,KAAK,GAAK,CAAC,EAAG,CACzD,GAAM,CAAC,EAAK,GAAS,EAAO,MAAM,GAAG,EACrC,GAAI,IAAQ,EACV,GAAI,CACF,OAAO,KAAK,MAAM,KAAK,CAAK,CAAC,CAC/B,OAAS,EAAG,CAEV,OADA,EAAE,SAAS,EACJ,CAAC,CACV,CAEJ,CACA,MAAO,CAAC,CACV,CAEA,SAAS,IAAa,CACpB,IAAM,EAAW,OAAO,SAAS,UAAY,UAC7C,GAAI,EAAS,MAAM,+BAA+B,EAEhD,OAAO,EAET,IAAM,EAAQ,EAAS,MAAM,GAAG,EAAE,QAAQ,EAMxC,OALE,EAAM,OAAS,EAEV,IAAI,EAAM,GAAG,GAAG,EAAM,KAGtB,EAAM,EAEjB,CAMA,IAAI,EAAQ,KASZ,SAAgB,IAAe,CAC7B,GAAO,KAAK,EACZ,EAAQ,IACV,CAUA,SAAgB,GAAa,EAAI,EAAO,CACtC,GAAY,EAGZ,IAAM,EAAU,SAAS,eAAe,CAAE,EAC1C,GAAI,EAAS,CACX,EAAQ,IAAIE,GAAAA,QAAU,MAAM,EAAS,CAAE,SAAU,QAAS,CAAC,EAC3D,EAAM,MAAQ,EACd,EAAM,GAAK,EACX,EAAM,KAAK,EAGX,IAAM,EAAY,SAAS,cAAc,IAAI,EAAG,aAAa,EACzD,GAAW,EAAU,MAAM,CACjC,CACF,CAQA,SAAgB,GAAc,EAAI,CAChC,OAAOA,GAAAA,QAAU,MAAM,YAAY,SAAS,eAAe,CAAE,CAAC,GAAG,KACnE,CAOA,SAAgB,GAAgB,EAAS,CAGvC,OAFK,EACA,EACE,EAAM,KAAO,GAAW,EAAM,SADhB,EAAM,SADR,EAGrB,CAQA,SAAgB,GAAa,EAAI,CAQ/B,OAPI,GAAe,GACjB,GAAY,EACZ,CAAI,EAAG,MAAM,aAKR,EACT,CAcA,SAAgB,GAAY,EAAO,EAAS,EAAG,EAAW,GAAI,CAC5D,OAAO,GAAO,MAAM,EAAS,EAAU,EAAS,EAAW,CAAQ,GAAK,CAAC,CAC3E,CAWA,SAAgB,EAAS,EAAW,WAAY,CAC9C,SAAS,cAAc,CAAQ,GAAG,MAAM,CAC1C,CAYA,SAAgB,EAAa,EAAI,EAAS,CAAC,EAAG,CAC5C,IAAK,IAAM,KAAS,EAClB,EAAM,MAAQ,GAIhB,SAD2B,cAAc,IAAI,EAAG,aACxC,GAAG,MAAM,CACnB,CAQA,SAAgB,EAAkB,EAAK,EAAU,CAC3C,IACF,EAAI,WAAa,EACjB,EAAI,MAAQ,GAEhB,CAYA,SAAgB,EAAe,EAAI,EAAgB,CAAC,EAAG,EAAe,CAAC,EAAG,CACxE,IAAM,EAAO,SAAS,cAAc,IAAI,GAAI,EAyB5C,OAxBK,GASL,SACG,iBAAiB,EAAmB,IAAI,IAAM,CAAC,QAAS,gBAAiB,GAAG,CAAY,CAAC,CAAC,EAC1F,QAAQ,GAAS,CAChB,EAAM,MAAM,EACZ,EAAM,KAAK,CACb,CAAC,EAGD,EAAK,cAAc,IAAM,IACzB,SAAS,cAAc,EAAmB,IAAI,IAAM,CAAC,WAAY,WAAY,GAAG,CAAa,CAAC,CAAC,GAE/F,GAA6B,EAAI,CAAa,EACvC,IAGF,KAtBL,QAAQ,MAAM,2BAA4B,CAAE,EACrC,GAsBX,CAYA,eAAsB,GAAoB,EAAI,EAAgB,CAAC,EAAG,EAAe,CAAC,EAAG,CACnF,IAAM,EAAO,SAAS,eAAe,CAAE,EAqBvC,OApBK,GASL,SACG,iBAAiB,EAAmB,IAAI,IAAM,CAAC,QAAS,gBAAiB,GAAG,CAAY,CAAC,CAAC,EAC1F,QAAQ,GAAS,CAChB,EAAM,MAAM,EACZ,EAAM,KAAK,CACb,CAAC,EACH,SAAS,iBAAiB,IAAI,EAAG,aAAa,EAAE,QAAQ,GAAS,CAC/D,EAAM,MAAM,CACd,CAAC,EAGM,IAAI,QAAQ,GACjB,eAAiB,CACf,GACE,EAAK,cAAc,IAAM,IACzB,SAAS,cACP,EAAmB,IAAI,IAAM,CAAC,WAAY,WAAY,GAAG,CAAa,CAAC,CACzE,EACA,CACA,GAA6B,EAAI,CAAa,EAC9C,EAAQ,EAAK,EACb,MACF,CACA,EAAQ,EAAI,CACd,CAAC,CACH,IAhCE,QAAQ,MAAM,2BAA4B,CAAE,EACrC,QAAQ,QAAQ,EAAK,EAgChC,CASA,SAAgB,GAAiB,EAAQ,CAEvC,SADyB,cAAc,IAAI,EAAO,aAC5C,GAAG,MAAM,CACjB,CAQA,SAAgB,GAA8B,EAAQ,EAAgB,CAAC,EAAG,CAIxE,SAHyB,cACvB,EAAmB,IAAI,IAAU,CAAC,WAAY,WAAY,GAAG,CAAa,CAAC,CAEvE,GAAG,MAAM,CACjB,CAEA,SAAgB,EAAoB,EAAM,EAAc,CACtD,IAAM,EAAY,CAAC,EACnB,IAAK,IAAM,KAAe,EACxB,EAAU,KAAK,GAAG,EAAK,GAAG,GAAa,EAEzC,OAAO,EAAU,KAAK,IAAI,CAC5B,CAYA,SAAgB,GAAkB,EAAO,CAIvC,OAHI,EAAQ,KAAa,GAAG,EAAM,GAC9B,EAAQ,KAAO,KAAa,GAAG,KAAK,MAAM,EAAQ,IAAI,EAAE,IACxD,EAAQ,KAAO,KAAO,KAAa,GAAG,KAAK,MAAM,EAAQ,KAAO,IAAI,EAAE,IACnE,GAAG,KAAK,MAAM,EAAQ,KAAO,KAAO,IAAI,EAAE,GACnD,CAQA,SAAgB,GAAiB,EAAM,CAErC,GAAM,CAAC,EAAM,EAAI,GAAM,EAAK,YAAY,EAAE,MAAM,SAAS,EAIzD,MAAO,GAAG,EAAG,GAHD,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7F,EAAK,GAEa,GAAG,GACzB,CAUA,SAAgB,GAAc,EAAM,CAClC,OAAO,GAAgB,CAAI,CAC7B,CASA,SAAgB,GAAiB,EAAM,EAAU,GAAO,CAEtD,IAAM,EAAM,EAAK,YAAY,EAAE,MAAM,SAAS,EAC9C,OAAO,EAAU,GAAG,EAAI,GAAG,GAAG,EAAI,GAAG,GAAG,EAAI,KAAO,GAAG,EAAI,GAAG,GAAG,EAAI,IACtE,CASA,SAAgB,GAAqB,EAAM,EAAU,GAAO,CAC1D,MAAO,GAAG,GAAgB,CAAI,EAAE,GAAG,GAAgB,EAAM,CAAO,GAClE,CAcA,SAAgB,GACd,EACA,EAAO,GACP,EAAQ,GACR,EAAM,GACN,EAAO,GACP,EAAU,GACV,CACA,IAAM,EAAO,IAAI,KAAK,eAAe,KAAM,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,CAAI,EACrE,EAAK,IAAI,KAAK,eAAe,KAAM,CAAE,MAAO,SAAU,CAAC,EAAE,OAAO,CAAI,EACpE,EAAK,IAAI,KAAK,eAAe,KAAM,CAAE,IAAK,SAAU,CAAC,EAAE,OAAO,CAAI,EAClE,CAAC,EAAI,EAAI,GAAM,EAClB,GAAK,EAAK,YAAY,GAAG,SAAS,EAAG,GAAG,GACxC,GAAK,EAAK,cAAc,GAAG,SAAS,EAAG,GAAG,GAC1C,GAAK,EAAK,cAAc,GAAG,SAAS,EAAG,GAAG,CAC7C,EAEI,EAAS,GAOb,OANI,IAAM,GAAU,IAAI,KACpB,IAAO,GAAU,IAAI,KACrB,IAAK,GAAU,IAAI,KACnB,IAAM,GAAU,IAAI,EAAG,GAAG,KAC1B,IAAS,GAAU,IAAI,KAEpB,EAAO,KAAK,CACrB,CAWA,SAAgB,GAAkB,EAAM,EAAO,EAAU,GAAM,EAAK,GAAO,CACzE,IAAI,EAAQ,EAAM,QAAQ,EAAI,EAAK,QAAQ,EACvC,EACF,GAAS,EACA,EACT,GAAS,IAET,GAAS,GAAK,IAGhB,IAAM,GAAQ,GAAM,EAAQ,KAAO,SAAS,EAAG,GAAG,EAClD,EAAQ,KAAK,MAAM,EAAQ,GAAI,EAC/B,IAAM,GAAM,GAAM,EAAQ,IAAK,SAAS,EAAG,GAAG,EAC9C,EAAQ,KAAK,MAAM,EAAQ,EAAE,EAC7B,IAAM,GAAM,GAAM,EAAQ,IAAK,SAAS,EAAG,GAAG,EAC9C,EAAQ,KAAK,MAAM,EAAQ,EAAE,EAC7B,IAAM,GAAM,GAAK,GAAO,SAAS,EAAG,GAAG,EAIvC,OAFI,EAAW,GAAG,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,IAChC,EAAgB,GAAG,EAAG,GAAG,EAAG,GAAG,IAC5B,GAAG,EAAG,GAAG,GAClB,CAQA,SAAgB,GAAgB,EAAM,CACpC,IAAM,EAAO,IAAI,KAAK,eAAe,KAAM,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,CAAI,EAE3E,MAAO,GADK,IAAI,KAAK,eAAe,KAAM,CAAE,MAAO,OAAQ,CAAC,EAAE,OAAO,CACzD,EAAE,GAAG,GACnB,CAQA,SAAgB,GAAgB,EAAQ,EAAgB,EAAG,CACzD,OAAO,EAAO,eAAe,KAAM,CAAE,sBAAuB,CAAc,CAAC,CAC7E,CAUA,SAAgB,GAAgB,EAAQ,EAAU,EAAgB,EAAG,CACnE,OAAQ,EAAR,CACE,IAAK,MACH,EAAW,IACX,MACF,IAAK,MACH,EAAW,IACX,MACF,QACF,CACA,MAAO,GAAG,EAAS,GAAG,GAAe,EAAS,IAAM,EAAe,CAAa,GAClF,CASA,SAAgB,GAAe,EAAM,EAAI,CACvC,MAAO,GAAG,GAAe,CAAI,EAAE,KAAK,GAAe,CAAE,GACvD,CAQA,SAAgB,GAAoB,EAAY,CAC9C,MAAO,kBAAkB,EAAW,QAAQ,KAAM,EAAE,EAAE,OAAO,EAAE,GACjE,CAgBA,SAAgB,GAAsB,EAAW,EAAU,EAAK,EAAU,QAAS,CACjF,GAAI,MACE,EAAc,CAAE,GAAK,CAAC,EAAU,WAElC,MADA,GAAU,WAAa,GAChB,EAAS,EAAE,YAAc,CAC9B,EAAU,WAAa,EACzB,CAAC,CACH,MAEA,GAAI,CAAC,EAAU,WAEb,MADA,GAAU,WAAa,GAChB,EAAS,EAAE,YAAc,CAC9B,EAAU,WAAa,EACzB,CAAC,EAGL,OAAO,QAAQ,QAAQ,CACzB,CAYA,SAAgB,GAA2B,EAAW,EAAU,EAAK,EAAU,QAAS,CAWtF,OAVK,EAAU,WAUR,QAAQ,QAAQ,EATd,GAAmB,CAAE,EAAE,KAAK,GAAW,CAC5C,GAAI,EAEF,MADA,GAAU,WAAa,GAChB,EAAS,EAAE,YAAc,CAC9B,EAAU,WAAa,EACzB,CAAC,CAEL,CAAC,CAGL,CAMA,SAAgB,GAAc,EAAQ,EAAU,CAC9C,IAAM,EAAO,EAAS,MAAM,GAAG,EAEzB,EAAI,EADU,EAAK,MACE,GAKzB,MAJE,CAAC,IAAA,GAAW,IAAI,EAAE,SAAS,CAAC,EAAU,EACtC,EAAK,OAAS,EACT,GAAa,EAAG,EAAK,KAAK,GAAG,CAAC,EAE9B,CAEX,CAUA,SAAgB,GAAQ,EAAU,EAAU,EAAQ,MAAO,EAAgB,GAAO,CAChF,GAAI,CAAC,EAAU,MAAO,CAAC,EACvB,IAAM,EAAO,OAAO,GAAa,WAAa,CAAC,GAAG,EAAS,CAAC,EAAI,CAAC,GAAG,CAAQ,EAEtE,GAAO,EAAG,IAAM,EAAE,cAAc,EAAG,IAAA,GAAW,CAAE,kBAAmB,EAAK,CAAC,EAmB7E,OAjBE,IAAU,MACL,EAAK,MAAM,EAAG,KACnB,EAAI,GAAa,EAAG,CAAQ,GAAK,GACjC,EAAI,GAAa,EAAG,CAAQ,GAAK,GAC7B,OAAO,GAAM,UAAY,OAAO,GAAM,SACpC,EACK,EAAI,EAAE,YAAY,EAAG,EAAE,YAAY,CAAC,EAEpC,EAAI,EAAG,CAAC,EAGb,EAAI,EAAU,EACd,EAAI,EAAU,GAEb,EACR,EAEM,EAAK,MAAM,EAAG,KACnB,EAAI,GAAa,EAAG,CAAQ,GAAK,GACjC,EAAI,GAAa,EAAG,CAAQ,GAAK,GAC7B,OAAO,GAAM,UAAY,OAAO,GAAM,SACpC,EACK,EAAI,EAAE,YAAY,EAAG,EAAE,YAAY,CAAC,EAEpC,EAAI,EAAG,CAAC,EAGb,EAAI,EAAU,EACd,EAAI,EAAU,GAEb,EACR,CAEL,CAUA,SAAgB,EAAe,EAAQ,EAAa,EAAG,EAAe,MAAO,CAC3E,MAAO,CACL,IAAK,EACL,MAAO,EACP,IAAK,SAAU,EAAK,EAAO,CACzB,IAAM,EAAc,KAAK,KAAK,EAAK,CAAK,EACxC,KAAK,IAAM,EACX,KAAK,MAAQ,CACf,EACA,IAAK,SAAU,EAAK,CAClB,OAAO,KAAK,MAAQ,EAAM,KAAK,MAAQ,MACzC,EACA,OAAQ,CAAC,EACT,SACA,KAAM,SAAU,EAAM,KAAK,IAAK,EAAQ,KAAK,MAAO,CAClD,GAAM,CAAE,SAAQ,eAAgB,KAAK,OAAO,EAAK,CAAK,EAEtD,MADA,MAAK,OAAS,EACP,CACT,CACF,CACF,CAYA,SAAgB,EACd,EACA,EACA,EAAa,EACb,MAAuB,EACvB,cACA,CACA,OAAO,GACJ,EAAK,KACG,CACL,OAAQ,GACN,GAAO,EAAc,EAAK,GAAM,CAAK,EACrC,EAAe,EACf,EAAiB,CACnB,EACA,YAAa,CACf,GAEF,GAAc,EAAI,EAAa,EAAa,GAAK,EACjD,GAAc,EAAI,MAAQ,MAC5B,CACF,CASA,SAAgB,GAAc,EAAI,CAChC,OAAO,EAAG,QAAQ,oBAAqB,EAAE,CAC3C,CAWA,SAAgB,EAAY,EAAU,EAAK,IAAK,EAAM,OAAQ,CAC5D,aAAa,GAAS,IAAI,CAAG,CAAC,EAC9B,GAAS,IAAI,EAAK,WAAW,EAAU,CAAE,CAAC,CAC5C,CACA,IAAM,GAAW,IAAI,IASrB,SAAgB,GACd,EAAS,EACT,EAAQ,CACN,QACA,QACA,QACA,MACA,OACA,cACA,aACA,OACA,UACA,SACA,aACA,SACA,KACA,SACA,QACA,QACF,EACA,CACA,IAAI,EAAS,GACb,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAC1B,GAAU,IAAM,EAAM,KAAK,MAAM,KAAK,OAAO,EAAI,EAAM,MAAM,GAE/D,OAAO,EAAO,OAAO,CAAC,CACxB,CASA,SAAgB,EACd,EAAS,EACT,EAAQ,CACN,QACA,OACA,QACA,QACA,UACA,OACA,MACA,QACA,OACA,QACA,SACA,SACF,EACA,CACA,IAAM,EAAQ,CAAC,EACf,IAAK,IAAI,EAAI,EAAG,EAAI,EAAQ,IAC1B,EAAM,KAAK,EAAM,KAAK,MAAM,KAAK,OAAO,EAAI,EAAM,MAAM,EAAE,EAE5D,OAAO,CACT,CAOA,SAAgB,GAAY,EAAM,CAChC,UAAU,UAAU,UAAU,CAAI,CACpC,CAYA,SAAgB,GAAe,EAAW,EAAS,CAAC,EAAG,EAAW,CAAC,EAAG,EAAU,GAAM,CACpF,IAAM,EAAW,CAAC,EAElB,IAAK,IAAM,KAAU,EACnB,GAAI,OAAO,GAAW,WACpB,EAAS,KAAK,EAAO,CAAC,OACjB,GAAI,EAAQ,CAEjB,IAAM,EAAI,EAAO,MAAM,EACvB,EAAS,KAAK,EAAE,GAAG,CAAM,CAAC,CAC5B,CAGF,IAAK,IAAM,KAAU,EACnB,GAAI,OAAO,GAAW,WACpB,EAAS,KAAK,EAAO,EAAK,CAAC,OACtB,GAAI,EAAQ,CAEjB,IAAM,EAAI,EAAO,MAAM,EACvB,EAAS,KAAK,EAAE,EAAO,MAAM,EAAG,EAAK,CAAC,CACxC,CAUA,OAPE,GAEF,EAAU,QAAU,QAAQ,IAAI,CAAQ,EAAE,YAAc,CAClD,IAAS,EAAU,QAAU,KACnC,CAAC,EACM,EAAU,SAEV,QAAQ,IAAI,CAAQ,CAE/B,CAWA,SAAgB,GAAU,EAAW,EAAS,CAAC,EAAG,EAAW,CAAC,EAAG,EAAU,GAAM,CAC/E,IAAM,EAAW,CAAC,EAElB,IAAK,IAAM,KAAU,EACnB,GAAI,OAAO,GAAW,WACpB,EAAS,KAAK,EAAO,EAAI,CAAC,OACrB,GAAI,EAAQ,CAEjB,IAAM,EAAI,EAAO,MAAM,EACvB,EAAS,KAAK,EAAE,GAAM,GAAG,CAAM,CAAC,CAClC,CAGF,IAAK,IAAM,KAAU,EACnB,GAAI,OAAO,GAAW,WACpB,EAAS,KAAK,EAAO,EAAK,CAAC,OACtB,GAAI,EAAQ,CAEjB,IAAM,EAAI,EAAO,MAAM,EACvB,EAAS,KAAK,EAAE,GAAO,GAAG,CAAM,CAAC,CACnC,CAUA,OAPE,GAEF,EAAU,QAAU,QAAQ,IAAI,CAAQ,EAAE,YAAc,CAClD,IAAS,EAAU,QAAU,KACnC,CAAC,EACM,EAAU,SAEV,QAAQ,IAAI,CAAQ,CAE/B,CAEA,SAAgB,GAAS,EAAI,CAC3B,OAAO,IAAI,QAAQ,GAAW,WAAW,EAAS,CAAE,CAAC,CACvD,CAMA,SAAgB,IAAgB,CAE9B,IAAM,EADW,GAAoB,gBACjB,GAAG,QAAU,OACjC,GAAe,CAAI,EACnB,IAAM,EAAW,SAAS,cAAc,eAAe,EAOvD,OANI,IACF,EAAS,QAAU,EACnB,EAAS,iBAAiB,aAAgB,CACxC,GAAe,EAAS,OAAO,CACjC,CAAC,GAEI,CACT,CAEA,SAAgB,GAAgB,EAAM,CACpC,IAAM,EAAW,GAAoB,gBAAgB,EACrD,EAAS,MAAQ,EAAO,OAAS,QACjC,GAAoB,iBAAkB,CAAQ,CAChD,CCl6BA,IAAa,GAAa,CACxB,QAAS,EAAS,EAAS,CACzB,IAAI,EAAQ,GACZ,IAAK,IAAM,IAAO,CAChB,qBACA,uBACA,mBACA,iBACF,EACM,EAAQ,UAAU,SAAS,CAAG,IAAG,GAAS,IAAI,KAGpD,IAAM,EAAU,IAAIC,GAAAA,QAAU,QAAQ,EAAS,CAC7C,MAAO,EAAQ,MACf,UAAW,EAAQ,IACnB,KAAM,GACN,QAAS,QACT,MAAO,CAAE,KAAM,GAAI,KAAM,CAAE,EAC3B,SAAU,iCAAiC,EAAM,0FACnD,CAAC,EAUD,MARA,GAAQ,kBAAoB,EAG5B,EAAQ,iBAAiB,kBAAmB,UAAY,CAEtD,SAD0B,iBAAiB,aACpC,EAAE,QAAQ,GAAO,EAAI,OAAO,CAAC,CACtC,CAAC,EAEM,CACT,EAEA,UAAW,EAAS,CAClB,IAAM,EAAU,EAAQ,kBACxB,GAAI,EAAS,CACP,OAAO,EAAQ,SAAY,YAC7B,EAAQ,QAAQ,EAGlB,IAAM,EAAiB,SAAS,cAAc,aAAa,EACvD,GACF,EAAe,OAAO,EAGxB,OAAO,EAAQ,iBACjB,CACF,CACF,EAKa,GAAe,CAC1B,QAAS,EAAS,EAAS,CACzB,EAAQ,iBAAiB,QAAS,UAAY,CAC5C,IAAM,EAAQ,OAAO,EAAQ,OAAU,WAAa,EAAQ,MAAM,EAAI,EAAQ,MAG1E,EAAQ,QAAU,IACpB,UAAU,WAAW,UAAU,CAAK,EAItC,EAAQ,UAAU,IAAI,yBAAyB,EAC/C,eAAiB,CACf,EAAQ,UAAU,OAAO,yBAAyB,CACpD,EAAG,IAAI,CACT,CAAC,CACH,CACF,EAQA,SAAgB,GAAc,EAAK,CACjC,OAAO,CACT,CAEA,SAAgB,GAAmB,EAAK,CACtC,OAAO,CACT,CAEA,SAAgB,GAAkB,EAAK,CACrC,OAAO,CACT,CAEA,SAAgB,GAAY,EAAK,EAC/B,EAAA,EAAA,cAAe,CACb,GAAiB,CAAG,GAAG,MAAM,CAC/B,CAAC,CACH,CAEA,SAAgB,GAAc,EAAQ,EAAW,CAC/C,IAAM,EAAO,EAAO,KAChB,EAAO,aAAa,MAAM,MAAM,SAAS,EAAE,WAAW,GAAQ,GAAG,EACnE,EAAO,GAAG,EAAE,EAEZ,EAAO,QAAQ,CAAE,KAAM,CAAU,CAAC,CAEtC,CCtDA,IAAA,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,iBACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,MACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,QACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,WAAY,CACV,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,IAAA,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,KAAM,QAAQ,EACtB,MAAQ,CACN,MAAO,CACL,SAAU,yBACZ,CACF,EACA,QAAS,CACM,eACb,MAAO,UAAkB,CACnB,KAAK,MACP,GAAe,KAAK,SAAU,CAAC,CAAC,EAEhC,KAAK,OAAO,CAEhB,EACA,KAAM,SAAU,EAA6B,CAC3C,GAAe,EACX,IAAS,SACX,KAAK,OAAO,EAEZ,KAAK,MAAM,CAAI,CAEnB,EACA,OAAQ,UAAY,CACd,KAAK,UACP,GAAa,KAAK,QAAS,KAAK,SAAS,EAEzC,KAAK,MAAM,QAAQ,CAEvB,CACF,CACF,CAAC,gMChFmB,EAAA,CAjDD,MAAM,mBAAmB,EAAA,2BAChC,kBAAA,EAAA,OAAA,SAAA,2BAwBF,MAAA,CAtBJ,OAAA,EAAA,EAAA,gBAAK,CAAC,8CAA6C,CAC1C,EAAA,WAAU,WAAA,WAAA,CAAA,CAAA,CAAA,EAAA,CAGV,EAAA,YAMa,EAAA,EAAA,oBAAA,GAAA,EAAA,IANb,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAOA,SAAA,OANP,KAAK,SACL,MAAM,0DACL,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,IAED,EAAA,QAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAA0B,OAAA,IAAA,EAAA,EAAA,iBAAhB,EAAA,MAAM,EAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBACE,OAAA,IAAA,EAAA,EAAA,iBAAd,EAAA,IAAI,EAAA,CAAA,EAAA,CAAA,GAGb,EAAA,QAOI,EAAA,EAAA,oBAAA,GAAA,EAAA,IAPJ,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAQA,SAAA,OAPP,KAAK,SACL,OAAA,EAAA,EAAA,gBAAK,CAAC,6BAA4B,CAAA,iBACN,EAAA,OAAO,CAAA,CAAA,EAClC,SAAU,EAAA,UAAQ,CAAK,EAAA,MACvB,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,IAAA,6BAEQ,OAAA,MAAA,EAAA,EAAA,iBAAZ,EAAA,EAAE,EAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CAAA,oBAyBJ,EAAA,CArBA,GAAI,EAAA,QAAQ,EAAA,CACV,OAAA,EAAA,EAAA,aAAuB,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,iBAAjB,oBAAiB,EAAA,CAAA,CAAA,CAAA,EACvB,MAAA,EAAA,EAAA,aAGF,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,QAAA,CAAA,MAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBAD6E,IAAA,KAA/E,8EAA2E,EAAA,CAAA,CAAA,CAAA,CAAA,EAGvE,eAAA,EAAA,EAAA,aAOA,EAAA,EAAA,EAAA,oBAAA,SAAA,CALP,KAAK,SACL,MAAM,mCACL,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,KAAI,SAAA,EAAA,GACb,mBAED,CAAA,CAAA,EAES,gBAAA,EAAA,EAAA,aAGA,EAAA,EAAA,EAAA,oBAAA,SAAA,CAFD,KAAK,SAAS,MAAM,6BAA8B,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,YAAW,GAAI,oBAEhF,CAAA,CAAA,sDC7CR,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCqBf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,iBACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,MAAO,CAEL,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,SAAS,EACjB,MAAQ,CACN,MAAO,CACL,KAAM,GACN,QAAS,GACT,OAAQ,eACV,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAQ,KAAK,KAAO,gBAAkB,KAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,GAC/E,CACF,EACA,SAAW,CACT,GAAI,CAAC,KAAK,OAAS,CAAC,OAAO,SAAS,SAAS,MAAM,eAAe,EAAG,CAEnE,KAAK,QAAU,GACf,MACF,CACA,IAAK,IAAM,KAAU,UAAU,QAAQ,MAAM,KAAK,GAAK,CAAC,EAAG,CACzD,GAAM,CAAC,EAAM,GAAS,EAAO,MAAM,GAAG,EACtC,GAAI,IAAS,KAAK,QAAU,CAAC,OAAQ,MAAM,EAAE,SAAS,GAAS,SAAS,EAAG,CACzE,KAAK,QAAU,GACf,MACF,CACF,CACF,EACA,QAAS,CACP,OAAQ,UAAkB,CACxB,SAAS,OAAS,KAAK,aAAa,MAAM,EAC1C,KAAK,KAAK,EACV,KAAK,MAAM,SAAS,CACtB,EACA,QAAS,UAAkB,CACzB,SAAS,OAAS,KAAK,aAAa,MAAM,EAC1C,KAAK,KAAK,CACZ,EACA,aAAc,SAAU,EAAyB,CAI7C,OAHE,KAAK,MACA,GAAG,KAAK,OAAO,GAAG,EAAQ,YAAY,KAAU,GAAK,IAAI,yBAEzD,GAAG,KAAK,OAAO,GAAG,EAAQ,YAAY,KAAU,GAAK,IAAI,8CAEpE,EACA,KAAM,UAAkB,CACtB,KAAK,KAAO,GACZ,eAAiB,CACf,KAAK,QAAU,EACjB,EAAG,GAAG,CACR,CACF,CACF,CAAC,gBC/FQ,MAAM,WAAW,MAWf,MAAM,0BAA0B,kCAZ9B,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAqBL,MAAA,OArBe,GAAI,EAAA,GAAI,OAAA,EAAA,EAAA,gBAAK,CAAC,gCAAwC,EAAA,KAAK,CAAA,6BAoBxE,MAnBN,GAmBM,EAAA,EAAA,EAAA,YAVG,EAAA,OAAA,UAAA,CAAA,MAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBADD,IAAA,CAND,MAAM,YAAY,EAAA,uBAAC,wMAIpB,2BACC,IAAA,CADE,MAAM,YAAY,KAAK,+CAA8C,gBAAc,wBACrF,IACH,kCAUI,MAPN,GAOM,EAAA,EAAA,EAAA,oBAJK,SAAA,CAFD,KAAK,SAAS,MAAM,0CAA2C,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,QAAO,GAAI,WAEzF,GAAA,EAAA,EAAA,oBAGS,SAAA,CAFD,KAAK,SAAS,MAAM,gCAAiC,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,GAAI,UAE9E,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,+BChBR,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCmCf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,SACN,WAAY,CACV,QAAS,GACT,UAAW,EACb,EACA,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,CACF,EACA,QAAS,CACP,QAAS,UAAoB,CAI3B,OAHI,KAAK,MAAQ,KAAK,cAAc,IAAM,KAAK,KACtC,GAAG,KAAK,cAAc,EAAE,mCAE1B,+BACT,EACA,cAAe,UAAoB,CACjC,OAAO,KAAK,MAAS,KAAK,MAAM,SAAqC,YAAY,KAAK,CACxF,CACF,CACF,CAAC,YC9EG,IAAI,UAGJ,MAAM,eAYA,IAAI,SAAS,gHAhBb,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBASD,OAVP,GAUO,CAHW,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAA2B,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAlB,EAAA,IAAI,EAAA,CAAA,CAAA,EAAA,EAAA,GACR,EAAA,OAAO,SAAA,EAAA,EAAA,YAAiB,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBACA,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAzB,EAAA,MAAI,GAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,GAAA,CAAA,GANT,EAAA,QAAL,KAAG,EAAA,CAAA,EACA,EAAA,aAAa,CAAA,CAAA,EAQf,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAUN,OAAA,OAPJ,OAAA,EAAA,EAAA,gBAAO,EAAA,UAAS,uBAAA,6BAAA,6BAMV,OAJP,GAIO,CAHW,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAA2B,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAlB,EAAA,IAAI,EAAA,CAAA,CAAA,EAAA,EAAA,GACR,EAAA,OAAO,SAAA,EAAA,EAAA,YAAiB,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBACA,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAzB,EAAA,MAAI,GAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAPX,EAAA,QAAL,KAAG,EAAA,CAAA,EACA,EAAA,aAAa,CAAA,CAAA,GAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAmBrB,OAAA,OARL,IAAI,UAGH,OAAA,EAAA,EAAA,gBAAO,EAAA,UAAS,uBAAA,6BAAA,IAED,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAA2B,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAlB,EAAA,IAAI,EAAA,CAAA,CAAA,EAAA,EAAA,GACR,EAAA,OAAO,SAAA,EAAA,EAAA,YAAiB,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBACA,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAzB,EAAA,MAAI,GAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,CAAA,GAAA,CAAA,GANT,EAAA,QAAL,KAAG,EAAA,CAAA,EACA,EAAA,aAAa,CAAA,CAAA,+BCzB9B,GAAO,QAAW,GAAa,CAC7B,EAAI,UAAU,GAAO,MAAQ,WAAY,EAAM,CACjD,EAEA,IAAA,GAAe,GCIf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,qBACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,kBACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,SACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,EACA,UAAW,UAAoB,CAC7B,OAAO,KAAK,QAAU,UAAY,aACpC,CACF,EACA,QAAS,CACa,qBACtB,CACF,CAAC,gIC5CE,OAAA,CADM,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,yBAAK,EAAA,mBAAmB,EAAA,MAAM,CAAA,EAAA,GAAA,EAAA,wBACzD,MAAA,EAAA,EAAA,iBACE,EAAA,SAAS,EAAG,IACf,CAAA,2BAA0B,OAAA,MAAA,EAAA,EAAA,iBAAjB,EAAA,OAAO,EAAA,CAAA,oCCDlB,GAAmB,QAAW,GAAa,CACzC,EAAI,UAAU,GAAmB,MAAQ,WAAY,EAAkB,CACzE,EAEA,IAAA,GAAe,GCsCf,SAAS,GAAiB,EAAoB,CAC5C,EAAM,eAAe,CACvB,CAEA,IAAA,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,aACN,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,QACX,EACA,IAAK,CACH,KAAM,OACN,QAAS,QACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,IAAA,EACX,EACA,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,YAAa,CACX,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,OAAQ,UAAW,QAAS,UAAU,EAC9C,MAAQ,CACN,MAAO,CACL,KAAM,EACN,SAAU,EACZ,CACF,EACA,SAAW,CACR,CAAC,YAAa,WAAY,YAAa,MAAM,EAAE,QAAQ,GAAa,CACnE,SAAS,KAAK,iBAAiB,EAAW,EAAe,CAC3D,CAAC,CACH,EACA,WAAa,CACV,CAAC,YAAa,WAAY,YAAa,MAAM,EAAE,QAAQ,GAAa,CACnE,SAAS,KAAK,oBAAoB,EAAW,EAAe,CAC9D,CAAC,CACH,EACA,QAAS,CACP,OAAQ,UAAkB,CACxB,IAAM,EAAU,SAAS,eAAe,oBAAoB,KAAK,MAAM,EACvE,GAAI,GAAW,SAAS,YAAa,CACnC,IAAM,EAAQ,SAAS,YAAY,aAAa,EAChD,EAAM,UAAU,QAAS,GAAM,EAAK,EACpC,EAAQ,cAAc,CAAK,CAC7B,CACF,EACA,QAAS,UAAkB,CAEzB,IAAM,EADU,SAAS,eAAe,oBAAoB,KAAK,MACnD,EAAQ,OAAS,CAAC,EAC5B,EAAM,OAAS,IACb,KAAK,SACP,KAAK,UAAU,MAAM,KAAK,CAAK,CAAC,EAEhC,KAAK,SAAS,EAAM,EAAU,EAGpC,EACA,KAAM,SAAU,EAAkB,CAEhC,KAAK,MAAM,OAAQ,CAAI,CACzB,EACA,SAAU,SAAU,EAAkB,CACpC,IAAM,EAAO,KAAK,MAElB,GADA,EAAK,OAAQ,CAAI,EACb,KAAK,YAAa,CACpB,IAAM,EAAS,IAAI,WACnB,EAAO,OAAS,SAAU,EAAO,CAC/B,EAAK,UAAW,EAAM,QAAQ,MAAM,CACtC,EACA,EAAO,WAAW,CAAI,CACxB,CACF,EACA,UAAW,SAAU,EAAqB,CACxC,IAAM,EAAO,KAAK,MAElB,GADA,EAAK,QAAS,CAAK,EACf,KAAK,YAAa,CACpB,IAAM,EAAQ,EAAM,IAClB,GACE,IAAI,QAAqC,GAAW,CAClD,IAAM,EAAS,IAAI,WACnB,EAAO,OAAS,GAAS,EAAQ,EAAM,QAAQ,QAAU,IAAI,EAC7D,EAAO,WAAW,CAAI,CACxB,CAAC,CACL,EACA,QAAQ,IAAI,CAAK,EAAE,KAAK,GAAY,EAAK,WAAY,CAAQ,CAAC,CAChE,CACF,EACA,OAAQ,SAAU,EAAwB,CACpC,EAAM,eACJ,KAAK,SACP,KAAK,UAAU,MAAM,KAAK,EAAM,aAAa,KAAK,CAAC,EAEnD,KAAK,SAAS,EAAM,aAAa,MAAM,EAAU,GAGrD,KAAK,SAAW,EAClB,EACA,OAAQ,SAAU,EAAqB,CACrC,KAAK,SAAW,CAClB,CACF,CACF,CAAC,oHCvHO,MAAA,CArCJ,OAAA,EAAA,EAAA,gBAAK,CAAC,mBACE,EAAA,SAAQ,cAAA,EAAA,CAAA,EACf,WAAQ,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,EAAA,EAChB,YAAS,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,EAAA,EACjB,OAAI,AAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,GAAA,IAAU,EAAA,QAAA,EAAA,OAAA,GAAA,CAAA,EAAM,CAAA,SAAA,CAAA,IAGb,EAAA,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAQN,QAAA,OAPC,GAAE,oBAAsB,EAAA,OACzB,KAAK,OACL,OAAO,UACP,MAAM,mBACN,QAAQ,cACP,SAAM,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,SAAA,EAAA,QAAA,GAAA,CAAA,EACT,SAAS,4EAUT,QAAA,CAPC,GAAE,oBAAsB,EAAA,OACzB,KAAK,OACJ,OAAQ,EAAA,OACR,SAAU,EAAA,SACX,MAAM,mBACL,SAAM,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,SAAA,EAAA,QAAA,GAAA,CAAA,EACT,SAAS,kBAEA,EAAA,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAIL,MAAA,OAJa,MAAM,cAAe,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,oCACL,IAAA,CAA3C,MAAM,gBAAgB,cAAY,+CAAS,YAAS,EAAA,2BAAqC,IAAA,CAAlC,KAAK,IAAK,QAAK,AAAA,EAAA,MAAA,EAAA,EAAA,mBAAN,CAAA,EAAc,CAAA,SAAA,CAAA,GAAC,QAAM,wBAAI,uBAAA,EAAA,EAAA,iBAEzF,EAAA,GAAG,EAAG,KACX,CAAA,iDAMM,MAAA,OALM,MAAM,cAAe,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,qCACO,IAAA,CAAhD,MAAM,qBAAqB,cAAY,+CAAS,WACnD,EAAA,2BAAqC,IAAA,CAAlC,KAAK,IAAK,QAAK,AAAA,EAAA,MAAA,EAAA,EAAA,mBAAN,CAAA,EAAc,CAAA,SAAA,CAAA,GAAC,QAAM,wBAAI,KAAA,EAAA,EAAA,iBAClC,EAAA,IAAI,EAAG,KAAA,EAAA,EAAA,iBACP,EAAA,GAAG,EAAG,KACX,CAAA,sBACQ,EAAA,OAAA,SAAA,oCCnCZ,GAAW,QAAW,GAAa,CACjC,EAAI,UAAU,GAAW,MAAQ,WAAY,EAAU,CACzD,EAEA,IAAA,GAAe,GCuEf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,UACN,aAAc,GACd,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,MACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,YAAa,CACX,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,WAAY,CACV,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,YAAa,CACX,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,IAAA,EACX,EACA,UAAW,CACT,KAAM,OACN,QAAS,IAAA,EACX,EACA,IAAK,CACH,KAAM,OACN,QAAS,IAAA,EACX,EACA,IAAK,CACH,KAAM,OACN,QAAS,IAAA,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,GACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,QAAS,UAAW,UAAW,mBAAmB,EAC1D,MAAQ,CACN,MAAO,CACL,MAAO,GACP,WAAY,KAAK,OAAS,GAC1B,eAAgB,KAAK,OAAS,iBAC9B,gBAAiB,KAAK,aAAe,mBACvC,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CAIvB,OAHE,KAAK,OAAS,OACT,KAAK,MAAQ,YAAe,KAAK,MAAqB,GAAb,YAEzC,KAAK,MAAQ,iBAAoB,KAAK,MAAqB,GAAb,WAEzD,CACF,EACA,MAAO,CACL,MAAO,EAAI,CACL,KAAK,aAAe,IACtB,KAAK,WAAa,EAEtB,CACF,EACA,QAAS,UAAY,CACf,KAAK,aAAa,KAAK,SAAS,CACtC,EACA,QAAS,CACP,YAAa,UAAkB,CAC7B,GAAI,KAAK,UAAY,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,EAAG,CACnD,IAAM,EAAQ,KAAK,MAAM,MACzB,EAAM,MAAQ,EAAM,MAAM,KAAK,EAC/B,KAAK,WAAa,EAAM,KAC1B,CACF,EACA,MAAO,UAAkB,CACvB,GAAW,KAAK,MAAM,KAAK,CAC7B,EACA,SAAU,SAAU,EAAO,GAAa,CAMtC,GALA,KAAK,MAAQ,GACT,GAAM,KAAK,YAAY,EACvB,KAAK,OAAS,QAAU,KAAK,aAAe,KAC9C,KAAK,gBAAkB,KAAK,WAAW,QAAQ,UAAW,EAAE,GAE1D,KAAK,WAAa,KAAK,YAAY,QAAU,IAAM,EACrD,KAAK,WAAW,8BAA8B,OAE9C,OAAQ,KAAK,KAAb,CACE,IAAK,SACH,KAAK,eAAe,EACpB,MACF,IAAK,QACH,KAAK,cAAc,EACnB,MACF,QACE,KAAK,aAAa,CACtB,CAEE,KAAK,OAAO,KAAK,SAAS,KAAK,UAAU,CAC/C,EACA,eAAgB,UAAqB,CAGnC,GAAI,KAAK,WAAa,KAAK,YAAY,QAAU,IAAM,EACrD,MAAO,GAEP,OAAQ,KAAK,KAAb,CACE,IAAK,SACH,GAAI,CAAC,KAAK,eAAe,EAAI,EAAG,MAAO,GACvC,MACF,IAAK,QACH,GAAI,CAAC,KAAK,cAAc,EAAI,EAAG,MAAO,GACtC,MACF,QACE,GAAI,CAAC,KAAK,aAAa,EAAI,EAAG,MAAO,EACzC,CAEF,MAAO,EACT,EACA,aAAc,SAAU,EAAS,GAAgB,CAC/C,IAAM,EAAY,OAAO,KAAK,SAAS,EACjC,EAAY,OAAO,KAAK,SAAS,EAqBvC,OApBI,KAAK,YAAc,KAAK,YAAY,QAAU,GAAK,GACjD,GACJ,KAAK,WACH,KAAK,OACH,yBAAyB,EAAS,aAAgB,EAAY,EAAI,KAAO,IAC7E,EAJmB,IAOjB,KAAK,YAAc,KAAK,YAAY,QAAU,GAAK,GACjD,GACJ,KAAK,WACH,KAAK,OAAS,wBAAwB,EAAS,aAAgB,EAAY,EAAI,KAAO,IACxF,EAHmB,IAMjB,KAAK,SAAW,CAAC,IAAI,OAAO,KAAK,QAAS,GAAG,EAAE,KAAK,KAAK,UAAU,GACjE,GACJ,KAAK,WAAW,KAAK,KAAK,EADP,IAId,EACT,EACA,eAAgB,SAAU,EAAS,GAAgB,CACjD,IAAM,EAAa,KAAK,WAAW,KAAK,EAClC,EAAM,WAAW,EAAW,KAAK,CAAC,EACxC,GAAI,KAAK,UACH,CAAC,sBAAsB,KAAK,EAAW,KAAK,CAAC,EAG/C,OAFI,GACJ,KAAK,WAAW,wBAAwB,EADrB,EAGrB,MAQA,GALI,CAAC,aAAa,KAAK,EAAW,KAAK,CAAC,GAKpC,EAAI,SAAS,IAAM,EAGrB,OAFI,GACJ,KAAK,WAAW,wBAAwB,EADrB,GAKvB,GAAI,KAAK,MAAQ,IAAA,IAAa,KAAK,MAAQ,IAAA,OACrC,EAAM,WAAW,KAAK,GAAG,GAAK,EAAM,WAAW,KAAK,GAAG,EAGzD,OAFI,GACJ,KAAK,WAAW,iCAAiC,KAAK,IAAG,OAAQ,KAAK,IAAI,EAAE,EADzD,EAGrB,MACK,GAAI,KAAK,MAAQ,IAAA,OAClB,EAAM,WAAW,KAAK,GAAG,EAG3B,OAFI,GACJ,KAAK,WAAW,4BAA4B,KAAK,IAAI,EAAE,EADpC,EAGrB,MACK,GAAI,KAAK,MAAQ,IAAA,IAClB,EAAM,WAAW,KAAK,GAAG,EAG3B,OAFI,GACJ,KAAK,WAAW,4BAA4B,KAAK,IAAI,EAAE,EADpC,GAKvB,MAAO,EACT,EACA,cAAe,SAAU,EAAS,GAAgB,CAMhD,MALK,oCAAoC,KAAK,KAAK,UAAU,EAKtD,IAJD,GACJ,KAAK,WAAW,qCAAqC,EADlC,GAKvB,EACA,SAAU,SAAU,EAAQ,GAAU,CACpC,KAAK,MAAQ,GACb,KAAK,WAAa,EAClB,KAAK,MAAM,oBAAqB,KAAK,UAAU,EAC/C,KAAK,MAAM,QAAS,KAAK,MAAQ,EAAE,EACnC,KAAK,MAAM,UAAW,KAAK,UAAU,CACvC,EACA,WAAY,SAAU,EAAwB,CAC5C,KAAK,MAAQ,GACb,KAAK,eAAiB,GAAW,iBACjC,KAAK,MAAM,oBAAqB,KAAK,UAAU,EAC/C,KAAK,MAAM,UAAW,KAAK,cAAc,EACzC,KAAK,MAAM,UAAW,KAAK,UAAU,CACvC,EACA,KAAM,UAAkB,CACtB,IAAM,EAAS,WAAW,KAAK,UAAU,EAAI,WAAW,KAAK,IAAI,EACjE,KAAK,IAAI,CAAM,CACjB,EACA,MAAO,UAAkB,CACvB,IAAM,EAAS,WAAW,KAAK,UAAU,EAAI,WAAW,KAAK,IAAI,EACjE,KAAK,IAAI,CAAM,CACjB,EACA,IAAK,SAAU,EAAsB,CACnC,OAAQ,KAAK,KAAb,CACE,IAAK,QACL,IAAK,SACC,KAAK,MAAQ,IAAA,IAAa,EAAS,WAAW,KAAK,GAAG,EACxD,KAAK,SAAS,KAAK,GAAG,EACb,KAAK,MAAQ,IAAA,IAAa,EAAS,WAAW,KAAK,GAAG,EAC/D,KAAK,SAAS,KAAK,GAAG,EAEtB,KAAK,SAAS,OAAO,CAAM,CAAC,EAE9B,KACJ,CACF,CACF,CACF,CAAC,uBClWqC,MAAM,oRA6DrC,MAAM,kBAAkB,YAGZ,MAAM,4BAGX,MAAM,iIApEL,EAAA,QAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEZ,QAAA,OAFoB,IAAK,EAAA,KAAM,MAAM,2DAChC,EAAA,KAAK,EAAA,CAAA,EAAe,EAAA,WAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAmC,OAA/C,GAAuC,GAAC,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,EAI9C,EAAA,OAAI,YAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAeV,YAAA,EAAA,EAAA,YAAA,OAdC,GAAI,EAAA,MACG,EAAA,OAAM,CACd,IAAI,wCACK,EAAA,WAAU,EAClB,UAAW,EAAA,UACX,MAAO,EAAA,MACP,SAAU,EAAA,SACV,UAAW,EAAA,UACX,UAAW,EAAA,UACX,YAAa,EAAA,YACb,SAAU,EAAA,SACV,OAAI,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,EAAA,EACd,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,EAChB,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,gCAVP,EAAA,UAAU,CAAA,CAAA,EAaR,EAAA,OAAI,UAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAaR,UAAA,EAAA,EAAA,YAAA,OAZN,GAAI,EAAA,qCACI,EAAA,WAAU,EACnB,MAAK,CAAC,cAEE,EAAA,KAAK,EADZ,UAAW,EAAA,UAEX,SAAU,EAAA,SACV,SAAU,EAAA,UACH,EAAA,OAAM,CACb,OAAI,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,EAAA,EACd,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,sBAET,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,GAAA,CAAA,CAAA,EAAA,aAVC,EAAA,UAAU,CAAA,CAAA,GAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAiCnB,SAAA,EAAA,EAAA,YAAA,OAnBC,GAAI,EAAA,MACG,EAAA,OAAM,CACd,IAAI,wCACK,EAAA,WAAU,EAClB,UAAW,EAAA,UACX,MAAO,EAAA,MACP,SAAU,EAAA,SACV,IAAK,EAAA,IACL,IAAK,EAAA,IACL,UAAW,EAAA,UACX,UAAW,EAAA,UACX,KAAM,EAAA,KACN,QAAS,EAAA,QACT,YAAa,EAAA,YACb,SAAU,EAAA,SACV,KAAI,CAAA,QAAA,EAAa,SAAS,EAAA,IAAI,EAAA,OAAa,EAAA,KAC3C,OAAI,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,EAAA,EACd,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,EAChB,QAAK,AAAA,EAAA,MAAA,GAAE,EAAA,SAAQ,mCAfP,EAAA,UAAU,CAAA,CAAA,EAiBR,EAAA,OAAI,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEP,QAAA,OAFqB,GAAE,GAAK,EAAA,KAAI,YAAe,IAAK,EAAA,KAAM,MAAM,2CACxE,EAAA,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,EAEA,EAAA,YAOwC,EAAA,EAAA,oBAAA,GAAA,EAAA,IAPxC,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAQN,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,oBALL,IAFJ,IAAA,EAAA,EAAA,iBACK,EAAA,cAAc,EAAA,CAAA,EAEV,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEL,IAFJ,IAAA,EAAA,EAAA,iBACK,EAAA,IAAI,EAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAE8C,IAAvD,EAAuD,EAAA,EAAA,EAAA,qCClE3D,GAAQ,QAAW,GAAa,CAC9B,EAAI,UAAU,GAAQ,MAAQ,WAAY,EAAO,CACnD,EAEA,IAAA,GAAe,GCiBf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,eACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,cAAe,CACb,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,mBAAmB,EAC3B,MAAQ,CACN,MAAO,CACL,WAAY,KAAK,KACnB,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,MAAO,aAAa,KAAK,OAAS,qBAAuB,GAAE,GAAI,KAAK,OACtE,CACF,EACA,MAAO,CACL,MAAO,EAAI,CACL,KAAK,aAAe,IACtB,KAAK,WAAa,EAEtB,CACF,EACA,QAAS,CACP,MAAO,SAAU,EAAQ,GAAO,CAC9B,KAAK,WAAa,EACjB,KAAM,MAAM,MAA2B,QAAU,CACpD,EACA,MAAO,UAAY,CACjB,GAAW,KAAK,MAAM,KAAK,CAC7B,CACF,CACF,CAAC,wICxEO,MAAA,CAfA,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,CAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,oBAWd,SAAA,EAAA,EAAA,YAAA,CATC,GAAI,EAAA,IAAM,EAAA,qCACF,EAAA,WAAU,EACnB,MAAM,mBACN,KAAK,WACJ,SAAU,EAAA,SACV,cAAe,EAAA,cACf,UAAW,EAAA,WACJ,EAAA,OAAM,CACb,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,oBAAsB,EAAA,UAAU,CAAA,CAAA,EAAA,KAAA,GAAA,EAAA,EAAA,CAAA,CAAA,EAAA,eAPrC,EAAA,UAAU,CAAA,CAAA,GAAA,EAAA,EAAA,oBAWb,QAAA,CAFD,MAAM,mBAAoB,IAAK,EAAA,IAAM,EAAA,wBAClC,EAAA,OAAA,SAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,+BCXd,GAAa,QAAW,GAAa,CACnC,EAAI,UAAU,GAAa,MAAQ,WAAY,EAAY,CAC7D,EAEA,IAAA,GAAe,GCYf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,eACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAQ,CACN,MAAO,CACL,MAAO,GACP,eAAgB,KAAK,OAAS,gBAChC,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OACG,KAAK,MAAQ,GAAK,aAClB,KAAK,MAAQ,IAAI,KAAK,QAAU,KAChC,KAAK,OAAS,cAAgB,GAEnC,CACF,EACA,QAAS,CACP,SAAU,UAAkB,CAC1B,KAAK,MAAQ,GACb,KAAK,eAAiB,gBACxB,EACA,WAAY,SAAU,EAAuB,CAC3C,KAAK,MAAQ,GACb,KAAK,eAAiB,GAAW,gBACnC,CACF,CACF,CAAC,YC/EqC,MAAM,iHAD7B,EAAA,QAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEZ,QAAA,OAFmB,OAAA,EAAA,EAAA,gBAAK,CAAC,aAAY,CAAA,SAAqB,EAAA,QAAQ,CAAA,CAAA,gDAC7D,EAAA,KAAK,EAAA,CAAA,EAAe,EAAA,WAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAmC,OAA/C,GAAuC,GAAC,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,2BAKhD,MAAA,CAFA,OAAA,EAAA,EAAA,gBAAK,cAAgB,EAAA,OAAK,EAAK,GAAI,EAAA,sBAC/B,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,2BAIN,IAAA,CAFD,OAAA,EAAA,EAAA,gBAAK,CAAC,mBAAkB,CAAA,SAAqB,EAAA,QAAQ,CAAA,CAAA,CAAA,GAAA,EAAA,EAAA,iBACnD,EAAA,cAAc,EAAA,CAAA,EAEV,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEL,IAAA,OAFW,OAAA,EAAA,EAAA,gBAAK,CAAC,iBAAgB,CAAA,SAAqB,EAAA,QAAQ,CAAA,CAAA,yBAC7D,EAAA,IAAI,EAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,oCCTX,GAAa,QAAW,GAAa,CACnC,EAAI,UAAU,GAAa,MAAQ,WAAY,EAAY,CAC7D,EAEA,IAAA,GAAe,GCGf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,YACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,IAAI,EAAI,cAWR,MAVI,CAAC,KAAK,SAAW,CAAC,KAAK,UACpB,KAAK,MAAM,SAAS,UAAU,IACjC,GAAK,iBAEE,KAAK,QACd,GAAK,gBACI,KAAK,YACd,GAAK,mBAGA,GAAK,KAAK,MAAQ,IAAI,KAAK,QAAU,GAC9C,CACF,CACF,CAAC,YCtDsB,MAAM,wEAAf,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEJ,OAFR,GAEQ,EAAA,EAAA,EAAA,oBAAP,OAAA,CADS,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,gDAAK,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEW,OAAA,OAAhD,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,gDAAK,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,gCCDzD,GAAU,QAAW,GAAa,CAChC,EAAI,UAAU,GAAU,MAAQ,WAAY,EAAS,CACvD,EAEA,IAAA,GAAe,GCSf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,cACN,MAAO,CACL,IAAK,CACH,KAAM,OACN,QAAS,IAAA,EACX,CACF,CACF,CAAC,MCvBM,MAAM,kCAAkC,MACtC,MAAM,KAAK,MACT,MAAM,iBAAiB,iBAGvB,MAAM,iBAAiB,4EAI1B,MATN,GASM,EAAA,EAAA,EAAA,oBADE,MAPN,GAOM,EAAA,EAAA,EAAA,oBAJE,MAFN,GAEM,EAAA,EAAA,EAAA,oBADqB,MAAA,CAAnB,IAAK,EAAA,IAAK,IAAI,0CAIhB,MAFN,GAEM,EAAA,EAAA,EAAA,YADI,EAAA,OAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+BCJhB,GAAY,QAAW,GAAa,CAClC,EAAI,UAAU,GAAY,MAAQ,WAAY,EAAW,CAC3D,EAEA,IAAA,GAAe,GCKf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,SACN,WAAY,CACV,QAAS,EACX,EACA,MAAO,CACL,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,IAAK,CACH,KAAM,QACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,SACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,wBACX,CACF,EACA,SAAU,CACR,QAAS,UAAoB,CAC3B,OAAO,KAAK,MAAQ,KAAK,MAAQ,YAAc,GACjD,CACF,CACF,CAAC,0ECnDU,EAAA,QAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAsE,IAAA,OAArC,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,EAAE,cAAY,qBAAnC,EAAA,KAAR,QAAM,CAAA,CAAA,EACnB,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAkE,IAAA,OAArC,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,EAAE,cAAY,qBAAnC,EAAA,KAAN,MAAI,CAAA,CAAA,EACpB,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAoE,IAAA,OAArC,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,EAAE,cAAY,qBAAnC,EAAA,KAAP,OAAK,CAAA,CAAA,GAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBACiC,IAAA,OAArC,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,EAAE,cAAY,qBAAnC,EAAA,KAAL,KAAG,CAAA,CAAA,+BCDzB,GAAO,QAAW,GAAa,CAC7B,EAAI,UAAU,GAAO,MAAQ,WAAY,EAAM,CACjD,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,iBACN,MAAO,CACL,OAAQ,CACN,KAAM,QACN,QAAS,EACX,CACF,CACF,CAAC,4ECdgG,IAAA,CAA3F,OAAA,EAAA,EAAA,gBAAK,CAAA,gBAAA,CAAsB,EAAA,MAAM,CAAA,EAAI,OAAO,SAAS,IAAI,yCAA8B,EAAA,OAAA,SAAA,CAAA,EAAA,CAAA,+BCE7F,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCKT,GAAS;;;;;;;;;;;;eAcT,GAAS;;;;;;;;;;;;0BAcf,GAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,UACN,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,WAAY,CACV,KAAM,OACN,QAAS,CACX,CACF,EACA,QAAS,CACP,MAAO,EAAuB,CAE5B,QADY,EAAQ,EAAI,GAAS,IAE3B,KAAK,EAAE,QAAQ,OAAQ,GAAG,EAAE,MAAM,GAAG,EAAE,OAAO,EAAG,KAAK,KAAK,EAAE,KAAK,GAAG,EAAI,KAC7E,QAAQ,OAAQ,GAAG,CACvB,CACF,CACF,CAAC,kCC3DiB,EAAA,YAAU,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEf,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBADN,EAAA,MAAK,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAA,GAAA,EAAA,EAAA,oBAIN,EAAA,SAAA,CAAA,IAAA,CAAA,GAAA,EAAA,EAAA,YAFe,SAAS,EAAA,UAAU,EAA5B,+CAEN,IAAA,CAF6C,IAAK,CAAK,GAAA,EAAA,EAAA,iBACtD,EAAA,MAAM,CAAK,CAAA,EAAA,CAAA,sCCFlB,GAAQ,QAAW,GAAa,CAC9B,EAAI,UAAU,GAAQ,MAAQ,WAAY,EAAO,CACnD,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,WACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,qBACX,CACF,CACF,CAAC,wFCd0D,IAAA,CAAtD,MAAM,aAAc,KAAI,UAAY,EAAA,4BAAS,EAAA,EAAE,EAAA,EAAA,EAAA,+BCEpD,GAAS,QAAW,GAAa,CAC/B,EAAI,UAAU,GAAS,MAAQ,WAAY,EAAQ,CACrD,EAEA,IAAA,GAAe,GCiCf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,MAAO,CACL,GAAI,CACF,KAAM,IAAA,GACN,aAAgB,CAAC,EACnB,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAoB,CAC3B,OAAO,KAAK,KACd,CACF,EACA,QAAS,CACP,KAAM,UAAkB,CACrB,KAAc,QAAQ,KAAK,KAAK,EAAE,CACrC,CACF,CACF,CAAC,4MC5BO,IAAA,CA/BH,OAAA,EAAA,EAAA,gBAAO,EAAA,OAAO,EACd,GAAI,KAAK,UAAU,EAAA,EAAE,EACrB,KAAM,EAAA,GAAG,KACT,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,IAAK,EAAA,GAAG,QAAQ,IAChB,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,KAAI,qBAEZ,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,+BC9BJ,GAAiB,QAAW,GAAa,CACvC,EAAI,UAAU,GAAiB,MAAQ,WAAY,EAAgB,CACrE,EAEA,IAAA,GAAe,GC6Cf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,UACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IACX,EACA,KAAM,CAEJ,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,IACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,QAAS,CACP,KAAM,SACN,QAAS,IACX,EACA,OAAQ,CACN,KAAM,SACN,QAAS,IACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CAEzB,OAAO,KAAK,KACd,CACF,EACA,MAAO,CAAC,OAAO,EACf,SAAW,CACT,IAAM,EAAQ,SAAS,eAAe,KAAK,IAAM,EAAE,EAC7C,EAAO,KAET,IACF,EAAM,iBAAiB,kBAAmB,UAAY,CAChD,EAAK,SAAS,EAAK,QAAQ,CACjC,CAAC,EACD,EAAM,iBAAiB,gBAAiB,UAAY,CAC9C,EAAK,QAAQ,EAAK,OAAO,CAC/B,CAAC,EAEL,CACF,CAAC,gBCxGQ,MAAM,cAAc,MAClB,MAAM,eAAe,MACnB,MAAM,cAAc,kCAwBb,MAAM,kBAIb,MAAM,cAAc,MACjB,MAAM,kDAAkD,MAGxD,MAAM,oDAAoD,MAG1D,MAAM,mDAAmD,4EAMjE,MAAA,CA5CA,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAK,SAAW,EAAA,OAAK,EAAI,SAAS,KAAK,mBAAiB,oCA2C/D,MA1CN,GA0CM,EAAA,EAAA,EAAA,oBADE,MAxCN,GAwCM,0BA1BE,MAbN,GAaM,kBAZiC,EAAA,OAAA,QAAA,CAAA,MAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,iBAAlB,cAAW,EAAA,CAAA,CAAA,EAChB,EAAA,QAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEL,SAAA,OAFY,MAAM,qBAAsB,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,QAAU,EAAA,KAAK,yBACvE,EAAA,KAAK,EAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,EAGF,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAMF,IAAA,OALJ,MAAM,aACL,KAAM,EAAA,QACP,OAAO,SACP,MAAM,iEAEN,IAAA,CADI,MAAM,yBAAyB,cAAY,4DAI3C,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAQD,OAAA,OAPJ,GAAE,GAAK,EAAA,GAAE,OACV,MAAM,+BACN,WAAA,GACC,SAAM,AAAA,EAAA,MAAA,EAAA,EAAA,mBAAP,CAAA,EAAe,CAAA,SAAA,CAAA,qBAEP,EAAA,OAAA,SAAA,GAAA,EAAA,EAAA,YACY,EAAA,OAAA,MAAA,CAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAKhB,MAHN,GAGM,EAAA,EAAA,EAAA,YAFI,EAAA,OAAA,SAAA,GAAA,EAAA,EAAA,YACY,EAAA,OAAA,MAAA,CAAA,CAAA,4BAYhB,MAVN,GAUM,0BAPK,OAFT,GAES,EAAA,EAAA,EAAA,YAAP,EAAA,OAAA,aAAA,CAAA,CAAA,2BAGO,OAFT,GAES,EAAA,EAAA,EAAA,YAAP,EAAA,OAAA,QAAA,CAAA,CAAA,2BAGO,OAFT,GAES,EAAA,EAAA,EAAA,YAAP,EAAA,OAAA,cAAA,CAAA,CAAA,6CCtCZ,GAAQ,QAAW,GAAa,CAC9B,EAAI,UAAU,GAAQ,MAAQ,WAAY,EAAO,CACnD,EAEA,IAAA,GAAe,GCiCf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,iBACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,eACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,SACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,eACX,EACA,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,IACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAQ,CACN,MAAO,CACL,MAAO,EACT,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,CACF,EACA,MAAO,CAAC,KAAM,OAAO,EACrB,QAAS,CACP,MAAO,UAAY,CACjB,KAAK,MAAQ,GACb,EAAoB,KAAK,MAAM,KAAM,EAAE,EACvC,EAAe,GAAG,KAAK,GAAG,MAAM,CAClC,EACA,SAAU,UAAY,CACpB,KAAK,MAAQ,KAAK,MAAM,MAAM,eAAe,CAC/C,CACF,CACF,CAAC,wJClEiB,EAAA,CA9Bb,GAAI,EAAA,GACJ,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,EACZ,UAAS,EAAA,MACT,SAAQ,CAAG,EAAA,MACX,QAAS,EAAA,QACT,MAAO,EAAA,MACP,KAAE,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,IAAA,EACT,GAAI,EAAA,IAAM,EAAA,OACV,MAAO,EAAA,MACP,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,OAAA,IAEF,OAAA,EAAA,EAAA,aACE,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAR,EAAA,KAAK,EAAA,CAAA,CAAA,CAAA,EAEC,MAAA,EAAA,EAAA,aACD,kBAAA,EAAA,OAAA,SAAA,2BAGJ,IAAA,KAAA,8BAFD,2CACsC,EAAA,2BAAuB,OAAA,MAAA,EAAA,EAAA,iBAAd,EAAA,IAAI,EAAA,CAAA,+BAAU,0BAChE,EAAA,sBAUE,EAAA,CARA,IAAI,OACJ,KAAK,OACL,SAAA,GACC,QAAO,IAAM,EAAA,KAAI,GAClB,MAAM,4CACN,UAAA,GACC,UAAO,AAAA,EAAA,KAAA,GAAE,EAAA,SAAQ,EACjB,QAAK,AAAA,EAAA,MAAA,EAAA,EAAA,UAAA,GAAQ,EAAA,OAAM,EAAA,CAAA,OAAA,CAAA,iIC1B5B,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCuCf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,cACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,YACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,MACX,EACA,GAAI,CACF,KAAM,OACN,QAAS,IACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,QACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,QAAS,CACP,KAAM,SACN,QAAS,IACX,EACA,OAAQ,CACN,KAAM,SACN,QAAS,IACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,CACF,EACA,MAAO,CAAC,KAAM,OAAO,EACrB,QAAS,CACP,OAAQ,UAAY,CACd,KAAK,OACP,KAAK,MAAM,IAAI,CAEnB,CACF,CACF,CAAC,MClFa,KAAK,SAAS,MAAM,mCAAmC,kBAAgB,qHAiBxE,EAAA,CArCR,GAAI,EAAA,GACJ,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,EACb,KAAA,GACC,UAAS,EAAA,OACT,WAAU,EAAA,QACV,MAAO,EAAA,MACP,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,OAAA,sBASF,MAAA,EAAA,EAAA,aACD,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,SAAA,GAAA,EAAA,EAAA,YACY,EAAA,OAAA,MAAA,CAAA,CAAA,EAEX,eAAA,EAAA,EAAA,aAGA,EAAA,EAAA,EAAA,oBAAA,SAFT,GAES,EAAA,EAAA,EAAA,oBADkB,OAAA,MAAA,EAAA,EAAA,iBAAhB,EAAA,MAAM,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAGR,gBAAA,EAAA,EAAA,aAWA,EAAA,EAAA,EAAA,oBAAA,SAAA,CATP,KAAK,SACL,OAAA,EAAA,EAAA,gBAAK,CAAC,6BAA4B,WACH,EAAA,uBAAmC,EAAA,WAIjE,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,6BAEO,OAAA,MAAA,EAAA,EAAA,iBAAZ,EAAA,EAAE,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,QA1BC,EAAA,OAAO,MAAA,MAAQ,6BACR,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,OAAA,CAAA,CAAA,iBAEL,6BACL,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAR,EAAA,KAAK,EAAA,CAAA,CAAA,CAAA,4FCXd,GAAY,QAAW,GAAa,CAClC,EAAI,UAAU,GAAY,MAAQ,WAAY,EAAW,CAC3D,EAEA,IAAA,GAAe,GCsCf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,YACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,UACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,aACX,EACA,KAAM,CAEJ,KAAM,QACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,EACA,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,IACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,IACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,QAAS,CACP,KAAM,SACN,QAAS,IACX,EACA,OAAQ,CACN,KAAM,SACN,QAAS,IACX,CACF,EACA,MAAO,CAAC,KAAM,SAAU,OAAO,EAC/B,MAAQ,CACN,MAAO,CACL,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,CACF,EACA,QAAS,CACP,SAAU,UAAY,CAEpB,KAAK,QAAU,GACf,GAAe,EACf,KAAK,MAAM,KAAM,GAAgB,KAAK,EAAE,CAAC,CAC3C,EACA,aAAc,UAAY,CAExB,KAAK,QAAU,GACf,GAAe,EACf,KAAK,MAAM,SAAU,GAAgB,KAAK,EAAE,CAAC,CAC/C,EACA,OAAQ,UAAY,CAClB,KAAK,QAAU,GACX,KAAK,QAAQ,KAAK,OAAO,CAC/B,EACA,OAAQ,UAAY,CAEb,KAAK,SACR,KAAK,MAAM,SAAU,GAAgB,KAAK,EAAE,CAAC,EAE3C,KAAK,SAAS,KAAK,QAAQ,CACjC,CACF,CACF,CAAC,8GCnGY,EAAA,CAlCR,GAAI,EAAA,GACJ,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,EACZ,KAAM,EAAA,KACN,UAAS,EAAA,OACT,WAAU,EAAA,OACV,MAAO,EAAA,MACP,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,OAAA,IAEF,OAAA,EAAA,EAAA,aACE,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAR,EAAA,KAAK,EAAA,CAAA,CAAA,CAAA,EAEC,MAAA,EAAA,EAAA,aAAc,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,SAAA,GAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAG,EAAA,IAAI,EAAA,CAAA,CAAA,CAAA,EACrB,eAAA,EAAA,EAAA,aAQA,CAND,EAAA,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAMC,SAAA,OALP,KAAK,SACL,MAAM,mCACL,QAAK,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,cAAA,EAAA,aAAA,GAAA,CAAA,6BAEiB,OAAA,MAAA,EAAA,EAAA,iBAAhB,EAAA,MAAM,EAAA,CAAA,CAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,CAAA,EAGR,gBAAA,EAAA,EAAA,aAUA,EAAA,EAAA,EAAA,oBAAA,SAAA,CARP,KAAK,SACL,OAAA,EAAA,EAAA,gBAAK,CAAC,6BAA4B,CAAA,iBACI,EAAA,OAAA,CAAA,CAAA,EAGrC,QAAK,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,UAAA,EAAA,SAAA,GAAA,CAAA,6BAEuB,OAAA,MAAA,EAAA,EAAA,iBAAtB,EAAA,IAAM,EAAA,MAAM,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,0FC9B7B,GAAU,QAAW,GAAa,CAChC,EAAI,UAAU,GAAU,MAAQ,WAAY,EAAS,CACvD,EAEA,IAAA,GAAe,GC0Bf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,oBACN,aAAc,GACd,QAAS,CACO,gBACd,YAAa,SAAU,EAAgB,CACrC,GAAmB,EAAE,OAA4B,OAAO,CAC1D,CACF,CACF,CAAC,qICjCG,QAAA,CAPC,QAAS,EAAA,aAAY,EACrB,SAAM,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,aAAA,EAAA,YAAA,GAAA,CAAA,EACT,GAAG,eACH,KAAK,WACL,MAAM,kBACN,SAAS,KACT,cAAY,oDASN,QAAA,CANN,IAAI,eACJ,MAAM,sCACN,MAAM,SACN,cAAY,kCAEoB,IAAA,CAA7B,MAAM,kBAAkB,CAAA,GAAA,EAAA,EAAA,iBAAK,cAClC,CAAA,EAAA,EAAA,kCAQQ,QAAA,CANN,IAAI,eACJ,MAAM,qCACN,MAAM,SACN,cAAY,kCAEqB,IAAA,CAA9B,MAAM,mBAAmB,CAAA,GAAA,EAAA,EAAA,iBAAK,aACnC,CAAA,EAAA,EAAA,oCCtBF,GAAkB,QAAW,GAAa,CACxC,EAAI,UAAU,GAAkB,MAAQ,WAAY,EAAiB,CACvE,EAEA,IAAA,GAAe,GCPf,SAAgB,IAAmB,CACjC,IAAM,EAAW,SAAS,eAAe,aAAa,EACtD,GAAI,EACF,GAAI,EAAS,QAAS,CACpB,EAAS,WAAW,UAAU,IAAI,kBAAkB,EAEpD,GAAI,CACF,aAAa,QAAQ,cAAe,MAAM,CAC5C,OAAS,EAAG,CACV,EAAE,SAAS,CACb,CACF,KAAO,CACL,EAAS,WAAW,UAAU,OAAO,kBAAkB,EAEvD,GAAI,CACF,aAAa,QAAQ,cAAe,OAAO,CAC7C,OAAS,EAAG,CACV,EAAE,SAAS,CACb,CACF,CAEJ,CAEA,SAAgB,IAAkB,CAEhC,GAAc,GAAuB,CAAC,EAGtC,SAAS,iBAAiB,kBAAkB,EAAE,QAAQ,GAAK,CACzD,EAAE,iBAAiB,YAAe,CAChC,GAAI,GAAkB,EAAG,CACvB,GAAc,EAAK,EAEnB,GAAI,CACF,aAAa,QAAQ,cAAe,OAAO,CAC7C,OAAS,EAAG,CACV,EAAE,SAAS,CACb,CACF,CACF,CAAC,CACH,CAAC,EAGD,SAAS,eAAe,aAAa,GAAG,iBAAiB,SAAU,UAAY,CAC7E,GAAgB,CAClB,CAAC,EAGD,SAAS,iBAAiB,4BAA4B,EAAE,QAAQ,GAAW,CACzE,EAAQ,iBAAiB,SAAU,GAAS,CAC1C,GAAI,CACF,aAAa,QAAQ,UAAU,EAAQ,KAAM,EAAM,OAAO,aAAa,MAAM,CAAC,CAChF,OAAS,EAAG,CACV,EAAE,SAAS,CACb,CACF,CAAC,EAGD,GAAI,CACW,aAAa,QAAQ,UAAU,EAAQ,IAC7C,IAAM,SAAQ,EAAQ,KAAO,GACtC,OAAS,EAAG,CACV,EAAE,SAAS,CACb,CACF,CAAC,EAGD,WAAW,UAAY,CACrB,SAAS,iBAAiB,MAAM,EAAE,QAAQ,GAAQ,CAChD,EAAK,UAAU,IAAI,YAAY,CACjC,CAAC,CACH,EAAG,GAAI,CACT,CAEA,SAAS,GAAe,EAAO,CAC7B,IAAM,EAAW,SAAS,eAAe,aAAa,EAClD,IACF,EAAS,QAAU,EAEvB,CAEA,SAAS,IAAqB,CAC5B,OAAO,KAAK,IAAI,UAAU,iBAAiB,aAAe,EAAG,QAAQ,YAAc,CAAC,EAAI,IAC1F,CAEA,SAAS,IAA0B,CACjC,IAAM,EAAS,aAAa,QAAQ,aAAa,EAI/C,OAHE,GAAU,KACL,CAAC,GAAkB,EAEnB,KAAK,MAAM,CAAM,CAE5B,CCtEA,IAAA,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,YACN,aAAc,GACd,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,CACF,EACA,SAAW,CACT,KAAK,MAAM,CACb,EACA,QAAS,CACP,OAAQ,UAAY,CAClB,GAAgB,CAClB,EACA,MAAO,UAAY,CACjB,KAAK,cAAgB,CACnB,GAAe,CACjB,CAAC,CACH,CACF,CACF,CAAC,MCzCM,MAAM,aAAa,MAEjB,MAAM,eAAe,MACnB,iBAAA,EAAc,sHAJrB,QAAA,CALA,GAAG,cACH,KAAK,WACJ,OAAA,EAAA,EAAA,gBAAK,kBAAoB,EAAA,OAAK,EAC9B,SAAM,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,QAAA,EAAA,OAAA,GAAA,CAAA,EACT,SAAS,wCASL,MAPN,GAOM,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBAN+C,QAAA,CAA5C,MAAM,kBAAkB,IAAI,iDAK7B,MAJN,GAIM,EAAA,EAAA,EAAA,oBADE,MAFN,GAEM,EAAA,EAAA,EAAA,YADI,EAAA,OAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,+BCThB,GAAU,QAAW,GAAa,CAChC,EAAI,UAAU,GAAU,MAAQ,WAAY,EAAS,CACvD,EAEA,IAAA,GAAe,GCWf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,WACN,aAAc,GACd,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAqB,CAC5B,OAAO,KAAK,OAAO,MAAM,KAC3B,EACA,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,EACA,eAAgB,UAAY,CAC1B,OAAO,KAAK,QAAU,kBAAoB,WAC5C,CACF,CACF,CAAC,MCnCU,MAAM,KAAK,MACT,MAAM,8BAA8B,4EAQzC,MAAA,CAXD,GAAG,aAAc,OAAA,EAAA,EAAA,gBAAK,aAAe,EAAA,OAAK,6BAUvC,MAAA,CATA,OAAA,EAAA,EAAA,gBAAO,EAAA,cAAc,CAAA,EAAA,EAAA,EAAA,EAAA,oBAQnB,MAPN,GAOM,EAAA,EAAA,EAAA,oBADE,MALN,GAKM,iCAFM,QAAA,CAFH,MAAM,qBAAqB,IAAI,cAAc,aAAW,wCAE7D,IAAA,CADI,MAAM,cAAc,cAAY,+BAE9B,EAAA,OAAA,SAAA,mBAAqB,EAAA,OAAA,OAAA,2CCLvC,GAAS,QAAW,GAAa,CAC/B,EAAI,UAAU,GAAS,MAAQ,WAAY,EAAQ,CACrD,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,QACN,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,iBACX,CACF,CACF,CAAC,MCdO,MAAM,QAAQ,4EAA2B,OAA/C,GAA+C,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAvB,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,CAAA,+BCEzC,GAAM,QAAW,GAAa,CAC5B,EAAI,UAAU,GAAM,MAAQ,WAAY,EAAK,CAC/C,EAEA,IAAA,GAAe,GCwBf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,SACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,WAAY,CACV,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,OAAO,KAAK,MAAQ,IAAI,KAAK,QAAU,EACzC,CACF,EACA,SAAW,CACT,SAAS,iBAAiB,UAAW,KAAK,OAAO,CACnD,EACA,WAAa,CACX,SAAS,oBAAoB,UAAW,KAAK,OAAO,CACtD,EACA,QAAS,CACP,MAAQ,CACN,QAAQ,GAAG,EAAE,CACf,EACA,QAAS,EAAwB,CAC/B,OAAQ,EAAQ,IAAhB,CACE,IAAK,SACH,GAAI,KAAK,OAAO,KAAK,WAAa,CAAC,GAAe,EAAG,CACnD,IAAM,EAAa,SAAS,cAAc,yBAAyB,EAGnE,GAAI,EAAY,CACd,EAAW,MAAM,EACjB,MACF,CACA,KAAK,QAAQ,GAAG,EAAE,CACpB,CACA,KACJ,CACF,CACF,CACF,CAAC,YCpFqB,MAAM,6BAYE,MAAM,wPAlBzB,EAAA,6CAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,aAKP,EAAA,OAJC,GAAI,EAAA,IAAM,EAAA,OAAO,KACjB,MAAO,EAAA,OAAS,EAAA,OAAO,MAAM,OAAK,WAClC,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,EACZ,MAAO,EAAA,OAAO,MAAM,+CAEZ,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEL,MAFN,GAEM,EAAA,EAAA,EAAA,aADU,CAAA,CAAA,CAAA,GAEC,EAAA,UAAA,EAAA,EAAA,YAQV,EAAA,OAAA,WAAA,CAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,aADa,EAAA,CANA,MAAO,EAAA,OAAO,MAAM,KAAA,EAAA,2BAC0C,iCAAA,IAAA,CAA3E,MAAM,YAAY,EAAC,uDAAoD,EAAA,kCACoB,IAAA,CAA3F,MAAM,qBAAqB,EAAC,8DAA2D,EAAA,2BAGjF,SAAA,CAFD,KAAK,SAAS,MAAM,0CAA2C,QAAK,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,MAAA,EAAA,KAAA,GAAA,CAAA,wCAC3D,OAAA,KAAX,OAAI,EAAA,CAAA,CAAA,CAAA,wBAIA,EAAA,aAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEV,MAFN,GAEM,EAAA,EAAA,EAAA,YADI,EAAA,OAAA,SAAA,CAAA,CAAA,IAAA,EAAA,EAAA,YAEK,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,EAAA,+BCpBjB,GAAO,QAAW,GAAa,CAC7B,EAAI,UAAU,GAAO,MAAQ,WAAY,EAAM,CACjD,EAEA,IAAA,GAAe,GCyDf,SAAgB,GACd,EACA,EACA,EACA,EACO,CACP,IAAM,EAAQ,CAAC,EACT,EAAQ,KAAK,KAAK,EAAQ,CAAQ,EACpC,EAAU,IAAG,EAAU,GACvB,EAAU,IAAO,EAAU,GAC/B,IAAK,IAAI,EAAO,EAAG,GAAQ,EAAO,KAC3B,GAAQ,EAAU,GAAU,GAAQ,EAAU,GAAW,IAAS,GAAK,IAAS,IACnF,EAAM,KAAK,CAAI,EAGnB,MAAO,CACL,SAAU,EAAU,EAAI,EAAU,EAAI,KACtC,KAAM,EAAU,EAAQ,EAAU,EAAI,KACtC,UACA,OACF,CACF,CAEA,IAAA,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,eACN,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,CACX,EACA,SAAU,CACR,KAAM,OACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,CACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,CACX,EACA,KAAM,CACJ,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,MAAM,EACd,SAAU,CACR,MAAO,UAAmB,CACxB,OAAO,GAAoB,KAAK,MAAO,KAAK,SAAU,KAAK,QAAS,KAAK,MAAM,CACjF,CACF,CACF,CAAC,YCpHsC,MAAM,gCACrC,MAAM,YAAY,YACM,MAAM,uBAUrB,MAAM,gCAK6C,MAAM,+CAU9C,MAAM,uBAUjB,MAAM,sDArCV,EAAA,OAAO,OAAO,OAAM,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAyCzB,MAzCN,GAyCM,EAAA,EAAA,EAAA,oBADC,KAvCL,GAuCK,CAtCO,EAAA,MAAM,WAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBASX,KATL,GASK,EAAA,EAAA,EAAA,oBADM,SAAA,CANP,KAAK,SACL,MAAM,YACL,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,OAAS,EAAA,MAAM,QAAQ,EACpC,aAAW,yCAEyC,IAAA,CAAjD,MAAM,oBAAoB,cAAY,iBAA2B,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAkB,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,iBAAZ,GAAC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAK1E,KAFL,GAEK,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBADiD,IAAA,CAAjD,MAAM,oBAAoB,cAAY,iBAA2B,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAkB,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,iBAAZ,GAAC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,CAAA,iDAYlE,EAAA,SAAA,MAAA,EAAA,EAAA,YATuB,EAAA,MAAM,OAAtB,EAAM,gEAA6B,CAAI,EAAA,CAC7C,EAAK,GAAQ,EAAA,MAAM,MAAM,EAAK,KAAU,EAAI,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEjD,KAFL,GAAuF,KAEvF,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,GAAA,EAAA,EAAA,oBAKK,KAAA,CAJD,OAAA,EAAA,EAAA,gBAAK,CAAC,YAAW,CAAA,OAAmB,IAAS,EAAA,MAAM,OAAO,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,oBAGnD,SAAA,CAFD,MAAM,YAAa,QAAK,GAAE,EAAA,MAAK,OAAS,CAAI,yBAC/C,CAAI,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,UAKH,EAAA,MAAM,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBASX,KATL,GASK,EAAA,EAAA,EAAA,oBADM,SAAA,CANP,KAAK,SACL,MAAM,YACL,QAAK,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,OAAS,EAAA,MAAM,IAAI,EAChC,aAAW,yCAE0C,IAAA,CAAlD,MAAM,qBAAqB,cAAY,iBAA2B,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAkB,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,iBAAZ,GAAC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAK3E,KAFL,GAEK,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBADkD,IAAA,CAAlD,MAAM,qBAAqB,cAAY,iBAA2B,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAkB,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,iBAAZ,GAAC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,CAAA,qECpCpF,GAAa,QAAW,GAAa,CACnC,EAAI,UAAU,GAAa,MAAQ,WAAY,EAAY,CAC7D,EAEA,IAAA,GAAe,GCGf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,SACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,IAAI,EAAI,WASR,MARI,CAAC,KAAK,SAAW,CAAC,KAAK,UACzB,GAAK,gBACI,KAAK,QACd,GAAK,gBACI,KAAK,YACd,GAAK,mBAGA,GAAK,KAAK,MAAQ,IAAI,KAAK,QAAU,GAC9C,CACF,CACF,CAAC,YCpDsB,MAAM,wEAAf,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEJ,OAFR,GAEQ,EAAA,EAAA,EAAA,oBAAP,OAAA,CADS,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,gDAAK,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEW,OAAA,OAAhD,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,gDAAK,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,gCCDzD,GAAO,QAAW,GAAa,CAC7B,EAAI,UAAU,GAAO,MAAQ,WAAY,EAAM,CACjD,EAEA,IAAA,GAAe,GCGf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,SACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CACzB,IAAI,EAAI,WASR,MARI,CAAC,KAAK,SAAW,CAAC,KAAK,UACzB,GAAK,gBACI,KAAK,QACd,GAAK,gBACI,KAAK,YACd,GAAK,kBAGA,GAAK,KAAK,MAAQ,IAAI,KAAK,QAAU,GAC9C,CACF,CACF,CAAC,YCpDsB,MAAM,wEAAf,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEJ,OAFR,GAEQ,EAAA,EAAA,EAAA,oBAAP,OAAA,CADS,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,gDAAK,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEW,OAAA,OAAhD,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,gDAAK,EAAA,IAAI,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,gCCDzD,GAAO,QAAW,GAAa,CAC7B,EAAI,UAAU,GAAO,MAAQ,WAAY,EAAM,CACjD,EAEA,IAAA,GAAe,GCmBf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,mBACN,MAAO,CACL,KAAM,CACJ,KAAM,OACN,QAAS,IACX,EACA,QAAS,CACP,KAAM,CAAC,OAAQ,IAAI,EACnB,QAAS,IACX,EACA,QAAS,CACP,KAAM,CAAC,OAAQ,IAAI,EACnB,QAAS,IACX,CACF,EACA,QAAS,CACP,sBACF,CACF,CAAC,MC3CO,MAAM,gBAAgB,yJAiBV,EAAA,CAlBD,MAAM,uCAAuC,EAAA,2BAiBvD,EAAA,EAAA,EAAA,oBAAA,KAhBL,GAgBK,CAfa,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAKL,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBAJE,KAAA,KAAP,KAAE,EAAA,GAAA,EAAA,EAAA,oBAGD,KAAA,KAAA,EAAA,EAAA,EAAA,aAD+B,EAAA,CAAzB,KAAA,EAAI,EAAA,2BAAW,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAP,EAAA,IAAI,EAAA,CAAA,CAAA,CAAA,gDAGT,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAGL,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBAFO,KAAA,KAAZ,UAAO,EAAA,GAAA,EAAA,EAAA,oBAC0E,KAAA,MAAA,EAAA,EAAA,iBAA9E,EAAA,mBAAmB,KAAO,EAAA,oBAAoB,EAAA,QAAO,EAAA,EAAU,EAAA,OAAO,EAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,EAE/D,EAAA,UAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAGL,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBAFO,KAAA,KAAZ,UAAO,EAAA,GAAA,EAAA,EAAA,oBAC0E,KAAA,MAAA,EAAA,EAAA,iBAA9E,EAAA,mBAAmB,KAAO,EAAA,oBAAoB,EAAA,QAAO,EAAA,EAAU,EAAA,OAAO,EAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,mBAEvE,EAAA,OAAA,SAAA,yCCdd,GAAU,QAAW,GAAa,CAChC,EAAI,UAAU,GAAU,MAAQ,WAAY,EAAS,CACvD,EAEA,IAAA,GAAe,GCSf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,gBACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,MACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAqB,CAC5B,OAAO,KAAK,OAAS,KAAK,OAAO,MAAM,KACzC,EACA,eAAgB,UAAY,CAC1B,OAAO,KAAK,QAAU,0BAA4B,mBACpD,CACF,CACF,CAAC,MC3CU,MAAM,0CAA0C,sCAIvC,MAAM,oFAKd,UATV,GASU,EAAA,EAAA,EAAA,oBADD,OAAA,CAPA,GAAI,EAAA,GAAI,WAAA,GAAY,OAAA,EAAA,EAAA,gBAAO,EAAA,cAAc,EAAG,SAAM,AAAA,EAAA,MAAA,EAAA,EAAA,mBAAP,CAAA,EAAe,CAAA,SAAA,CAAA,6BAMpD,WAAA,CALD,MAAM,MAAO,SAAU,EAAA,WACnB,EAAA,OAAA,EAAA,EAAA,YAAS,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAGf,MAFN,GAEM,EAAA,EAAA,EAAA,YADI,EAAA,OAAA,SAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,+BCHlB,GAAc,QAAW,GAAa,CACpC,EAAI,UAAU,GAAc,MAAQ,WAAY,EAAa,CAC/D,EAEA,IAAA,GAAe,GCqBf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,oBACN,MAAO,CACL,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAqB,CAC5B,OAAO,KAAK,OAAS,KAAK,OAAO,MAAM,KACzC,EACA,eAAgB,UAAY,CAC1B,OAAO,KAAK,QACR,6CACA,sCACN,CACF,CACF,CAAC,MCrDU,MAAM,gCAAgC,MAEtC,MAAM,KAAK,MACT,MAAM,QAAQ,mGAkBf,UArBV,GAqBU,EAAA,EAAA,EAAA,oBADF,MAAA,CAnBA,OAAA,EAAA,EAAA,gBAAO,EAAA,cAAc,CAAA,EAAA,EAAA,EAAA,EAAA,oBAkBnB,MAjBN,GAiBM,EAAA,EAAA,EAAA,oBADE,MAfN,GAeM,CAdM,EAAA,QAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAYL,KAAA,GAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAXA,EAAA,KAAK,EAAA,CAAA,EAEA,EAAA,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAQJ,IAAA,OAPD,KAAM,EAAA,KACP,MAAM,wBACN,OAAO,SACP,IAAI,sBACJ,MAAM,6CAEiD,IAAA,CAApD,MAAM,yBAAyB,cAAY,8GAG1C,EAAA,OAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,+BCflB,GAAkB,QAAW,GAAa,CACxC,EAAI,UAAU,GAAkB,MAAQ,WAAY,EAAiB,CACvE,EAEA,IAAA,GAAe,GCSf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,gBACN,MAAO,CACL,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAqB,CAC5B,OAAO,KAAK,OAAS,KAAK,OAAO,MAAM,KACzC,EACA,aAAc,UAAY,CACxB,OAAO,KAAK,UAAY,uBAAyB,YACnD,EACA,eAAgB,UAAY,CAC1B,OAAO,KAAK,QAAU,kBAAoB,WAC5C,CACF,CACF,CAAC,MCxCU,MAAM,KAAK,YAEF,MAAM,oFAKd,UAAA,CATA,OAAA,EAAA,EAAA,gBAAO,EAAA,YAAY,CAAA,EAAA,EAAA,EAAA,EAAA,oBAQrB,MAAA,CAPA,OAAA,EAAA,EAAA,gBAAO,EAAA,cAAc,CAAA,EAAA,EAAA,EAAA,EAAA,oBAMnB,MALN,GAKM,CAJQ,EAAA,OAAA,EAAA,EAAA,YAAS,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAGf,MAFN,GAEM,EAAA,EAAA,EAAA,YADI,EAAA,OAAA,SAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,+BCHlB,GAAc,QAAW,GAAa,CACpC,EAAI,UAAU,GAAc,MAAQ,WAAY,EAAa,CAC/D,EAEA,IAAA,GAAe,GCOf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,oBACN,WAAY,CACV,cAAA,EACF,EACA,MAAO,CACL,UAAW,CACT,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,KAAM,CACJ,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAqB,CAC5B,OAAO,KAAK,OAAS,KAAK,OAAO,MAAM,KACzC,EACA,UAAW,UAAY,CACrB,MAAO,WAAa,KAAK,KAAO,WAAa,WAC/C,EACA,UAAW,UAAY,CACrB,MAAO,WAAa,KAAK,KAAO,WAAa,WAC/C,EACA,aAAc,UAAY,CACxB,MAAO,yBAA2B,KAAK,UAAY,uBAAyB,GAC9E,CACF,CACF,CAAC,qHCzCmB,EAAA,CALA,OAAA,EAAA,EAAA,gBAAO,EAAA,YAAY,EAAE,SAAA,GAAQ,MAAO,EAAA,oCACM,EAAA,EAAA,EAAA,oBAAA,MAAA,CAApD,OAAA,EAAA,EAAA,gBAAO,EAAA,SAAS,CAAA,EAAA,EAAA,EAAA,EAAA,YAAU,EAAA,OAAA,SAAA,GAAA,EAAA,EAAA,YAAoB,EAAA,OAAA,MAAA,CAAA,EAAA,CAAA,EACzC,EAAA,OAAO,OAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEZ,MAAA,OAFmB,OAAA,EAAA,EAAA,gBAAO,EAAA,SAAS,qBACnB,EAAA,OAAA,MAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,CAAA,yDCD1B,GAAkB,QAAW,GAAa,CACxC,EAAI,UAAU,GAAkB,MAAQ,WAAY,EAAiB,CACvE,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,YACN,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,aACX,CACF,CACF,CAAC,MCdM,MAAM,YAAY,4EAAyE,MAAhG,GAAgG,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAArE,EAAA,KAAK,EAAA,CAAA,EAAA,AAAA,EAAA,MAAA,EAAA,EAAA,oBAA0D,IAAA,CAApD,MAAM,yBAAyB,cAAY,gDCEnF,GAAU,QAAW,GAAa,CAChC,EAAI,UAAU,GAAU,MAAQ,WAAY,EAAS,CACvD,EAEA,IAAA,GAAe,GCPf,SAAgB,GAAoB,EAAI,EAAO,GAAO,CACpD,SAAS,iBAAiB,IAAI,EAAG,aAAa,EAAE,QAAQ,GAAW,CACjE,GAA0B,EAAS,CAAI,CACzC,CAAC,CACH,CA0BA,IAAI,GAAQ,EACR,GAAU,KAEd,SAAS,GAA2B,EAAS,EAAO,GAAO,CACzD,GAAQ,EACR,GAAU,KACV,EAAQ,iBAAiB,YAAa,EAAS,EAC/C,SAAS,iBAAiB,YAAa,EAAS,EAChD,SAAS,iBAAiB,UAAW,EAAO,EACxC,GACF,EAAQ,iBAAiB,QAAS,EAAU,CAEhD,CAEA,IAAM,GAAY,GAAa,CAC7B,EAAU,eAAe,EACzB,GAAU,EAAU,OAAS,EAAU,OAAO,cAAgB,KAC9D,GAAQ,EAAU,KACpB,EAEM,GAAY,GAAa,CAC7B,GAAI,KAAY,KAAM,CACpB,EAAU,eAAe,EACzB,IAAM,EAAQ,EAAU,MAAQ,GAChC,GAAQ,EAAU,MAElB,IAAM,EAAW,GAAY,EAAO,EAAI,EAClC,EAAK,EAAU,QAAQ,QAAQ,OAAO,GAAG,IAAM,UACpC,SAAS,cAAc,IAAI,EAAG,iBAAiB,EAG9D,SAAS,iBAAiB,IAAI,EAAG,mBAAmB,EAAS,EAAE,EAAE,QAAQ,GAAO,CAC9E,IAAM,GACH,EAAI,MAAM,WAAa,GAAK,EAAI,YAAc,SAAS,EAAI,MAAM,QAAQ,GAAK,EACjF,EAAI,MAAM,OAAS,EAAQ,GAAK,EAAQ,IAAM,KAC9C,EAAI,MAAM,UAAY,EAAQ,GAAK,EAAQ,IAAM,KACjD,EAAI,QAAU,CAChB,CAAC,GAGD,SAAS,iBAAiB,IAAI,EAAG,mBAAmB,EAAS,EAAE,EAAE,QAAQ,GAAO,CAC9E,IAAM,EAAQ,EAAI,YAAc,EAChC,EAAI,MAAM,OAAS,EAAQ,GAAK,EAAQ,IAAM,IAChD,CAAC,EACD,SAAS,iBAAiB,IAAI,EAAG,mBAAmB,EAAW,EAAE,EAAE,EAAE,QAAQ,GAAO,CAClF,IAAM,EAAQ,EAAI,YAAc,EAChC,EAAI,MAAM,OAAS,EAAQ,GAAK,EAAQ,IAAM,IAChD,CAAC,EAEL,CACF,EAEM,GAAU,GAAW,CACrB,KAAY,OACd,EAAQ,eAAe,EACvB,GAAQ,EACR,GAAU,KAEd,EAEM,GAAa,GAAS,CAC1B,GAAI,EAAM,SAAW,EAAG,CACtB,IAAM,EAAQ,EAAM,QAAQ,QAAQ,OAAO,EAC3C,GAAI,CAAC,EAAO,OACZ,EAAM,eAAe,EAErB,IAAM,EAAK,GAAO,IAAM,UAClB,EAAK,EAAM,QAAQ,QAAQ,IAAI,EAC/B,EAAW,MAAM,KAAK,EAAG,cAAc,QAAQ,EAAE,QAAQ,CAAE,EAGjE,SAAS,iBAAiB,IAAI,EAAG,gBAAgB,EAAS,EAAE,EAAE,QAAQ,GAAO,CAC3E,EAAI,MAAM,MAAQ,MAClB,EAAI,MAAM,SAAW,KACvB,CAAC,EAGD,IAAI,EAAe,EACnB,SACG,iBAAiB,IAAI,EAAG,gBAAgB,EAAS,MAAM,EAAG,gBAAgB,EAAS,EAAE,EACrF,QAAQ,GAAO,CACd,IAAK,EAAI,SAAW,KAAO,EAAG,CAC5B,IAAM,EAAY,EAAI,YACtB,EAAe,EAAY,EAAe,EAAY,CACxD,CACF,CAAC,EAGH,SAAS,iBAAiB,IAAI,EAAG,gBAAgB,EAAS,EAAE,EAAE,QAAQ,GAAO,CACvE,EAAI,UAAY,GAElB,EAAI,QAAU,EACd,EAAI,MAAM,eAAe,OAAO,EAChC,EAAI,MAAM,eAAe,WAAW,IAIpC,EAAI,QAAU,EACd,EAAI,MAAM,MAAQ,GAAG,EAAI,QAAU,GAAQ,IAC3C,EAAI,MAAM,SAAW,GAAG,EAAI,QAAU,GAAQ,IAElD,CAAC,CACH,CACF,EAEA,SAAS,GAAa,EAAK,CAEzB,IAAI,EAAQ,EACZ,KAAO,GACL,IACA,EAAM,EAAI,uBAEZ,OAAO,CACT,CCtEA,IAAA,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,UACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,WAAY,CACV,KAAM,OACN,QAAS,oBACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,CACX,EACA,cAAe,CACb,KAAM,QACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,MACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,EACA,WAAY,CACV,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAQ,CACN,MAAO,CACL,KAAM,MAAM,EAAE,EAAE,KAAK,EAAI,EACzB,QAAS,KAAK,KAChB,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CAEzB,IAAI,EAAI,GACJ,KAAK,gBAAe,GAAK,2BACzB,KAAK,SAAQ,GAAK,oBAClB,KAAK,QAAO,GAAK,mBACjB,KAAK,UAAS,GAAK,aACvB,IAAK,IAAI,EAAI,EAAG,GAAK,KAAK,KAAK,OAAQ,IAChC,KAAK,KAAK,EAAI,KAAI,GAAK,iBAAiB,EAAE,QAEjD,OAAO,CACT,EACA,WAAY,UAAoB,CAC9B,OAAO,KAAK,KACd,EACA,QAAS,UAAsB,CAC7B,OAAQ,KAAK,UAAY,CAAC,GAAG,IAAI,GAAW,EAAQ,QAAQ,MAAO,EAAE,CAAC,CACxE,CACF,EACA,MAAO,CACL,KAAM,UAAY,CAChB,KAAK,aAAa,CACpB,CACF,EACA,SAAW,CACT,GAAI,KAAK,aACF,IAAI,EAAI,EAAG,EAAI,KAAK,QAAQ,OAAQ,IACnC,KAAK,SAAS,KAAO,KAAK,QAAQ,KAEpC,KAAK,KAAK,GAAK,GAIvB,EACA,SAAW,CACT,KAAK,aAAa,CACpB,EACA,QAAS,CACP,aAAc,UAAY,CACxB,KAAK,cAAgB,CACnB,GAAoB,KAAa,KAAM,KAAK,UAAU,CACxD,CAAC,CACH,CACF,CACF,CAAC,gDC7JW,MAAM,eAAe,MACnB,QAAQ,KAAK,iBAMf,MAAM,eAAe,MACnB,QAAQ,KAAK,iBAelB,MAAM,WAAW,MACf,MAAM,KAAK,MACT,MAAM,iCAAiC,MAWvC,MAAM,iCAAiC,oPAhB5C,MAAA,CA/BA,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAK,mBAAqB,EAAA,YAAU,6BA8BzC,QAAA,CA7BA,GAAI,EAAA,KAAO,OAAA,EAAA,EAAA,gBAAK,iBAAmB,EAAA,OAAK,6BAKtC,QAAA,KAAA,EAAA,EAAA,EAAA,oBADD,KAAA,KAAA,EAAA,EAAA,EAAA,YADmB,EAAA,OAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAGb,EAAA,MAAI,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAET,QAAA,GAAA,EAAA,EAAA,EAAA,YADE,EAAA,OAAA,SAAA,GAAA,EAAA,EAAA,YAAoB,EAAA,OAAA,MAAA,CAAA,CAAA,GAEZ,EAAA,OAAI,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAMd,QAAA,GAAA,EAAA,EAAA,EAAA,oBADD,KAJL,GAIK,EAAA,EAAA,EAAA,oBADE,KAFL,IAAA,EAAA,EAAA,iBACK,EAAA,UAAU,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAUX,QAAA,GAAA,EAAA,EAAA,EAAA,oBADD,KAJL,GAIK,EAAA,EAAA,EAAA,oBADE,KAFL,GAEK,EAAA,EAAA,EAAA,aADW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAIP,EAAA,OAAO,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAIZ,QAAA,GAAA,EAAA,EAAA,EAAA,oBADD,KAAA,KAAA,EAAA,EAAA,EAAA,YADmB,EAAA,OAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,mBAGL,EAAA,OAAA,OAAA,kBAGN,EAAA,QAAQ,OAAM,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,aAgCnB,EAAA,OAhC0B,GAAI,EAAA,KAAI,YAAgB,MAAM,6CACR,iCAAA,IAAA,KAAzD,wDAAqD,EAAA,2BA0BlD,MAzBN,GAyBM,EAAA,EAAA,EAAA,oBADE,MAvBN,GAuBM,EAAA,EAAA,EAAA,oBAZE,MAVN,GAUM,GAAA,EAAA,EAAA,WAAA,EAAA,GAAA,EAAA,EAAA,oBADO,EAAA,SAAA,MAAA,EAAA,EAAA,YARsB,EAAA,SAAf,EAAK,gEAAyB,CAAG,EAAA,CAEzC,EAAQ,EAAA,QAAQ,OAAM,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,aAK7B,EAAA,OAJE,MAAO,EAAA,KAAK,cACJ,EAAA,KAAK,4BAAL,EAAA,KAAK,GAAK,EACnB,MAAM,0DACI,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAN,CAAG,EAAA,CAAA,CAAA,CAAA,mIAcP,MAVN,GAUM,GAAA,EAAA,EAAA,WAAA,EAAA,GAAA,EAAA,EAAA,oBADO,EAAA,SAAA,MAAA,EAAA,EAAA,YARsB,EAAA,SAAf,EAAK,gEAAyB,CAAG,EAAA,CAEzC,GAAS,EAAA,QAAQ,OAAM,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,aAK9B,EAAA,OAJE,MAAO,EAAA,KAAK,cACJ,EAAA,KAAK,4BAAL,EAAA,KAAK,GAAK,EACnB,MAAM,0DACI,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAN,CAAG,EAAA,CAAA,CAAA,CAAA,8IAMX,KAAA,KAAA,KAAA,EAAA,oBAGL,EAAA,CAFgB,MAAO,EAAA,mBAAkB,EAAA,wCAAA,EAAA,QAAO,EAAE,MAAM,mDACpC,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,iBAAlB,qBAAkB,EAAA,CAAA,CAAA,CAAA,qHC5DzB,GAAQ,QAAW,GAAa,CAC9B,EAAI,UAAU,GAAQ,MAAQ,WAAY,EAAO,CACnD,EAEA,IAAA,GAAe,GCEf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,aACN,MAAO,CACL,UAAW,CACT,KAAM,QACN,QAAS,EACX,CACF,CACF,CAAC,4ECdM,KAAA,CAFA,OAAA,EAAA,EAAA,gBAAO,EAAA,UAAS,oBAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,YACX,EAAA,OAAA,SAAA,CAAA,EAAA,CAAA,+BCCZ,GAAW,QAAW,GAAa,CACjC,EAAI,UAAU,GAAW,MAAQ,WAAY,EAAU,CACzD,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,oBACN,MAAO,CACL,QAAS,CAEP,KAAM,OACN,QAAS,EACX,CACF,CACF,CAAC,MCfK,MAAM,eAAe,4EAA2B,KAApD,GAAoD,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAvB,EAAA,OAAO,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,CAAA,+BCEjD,GAAkB,QAAW,GAAa,CACxC,EAAI,UAAU,GAAkB,MAAQ,WAAY,EAAiB,CACvE,EAEA,IAAA,GAAe,GCIf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,kBACN,WAAY,CACV,QAAS,EACX,EACA,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,KACX,CACF,CACF,CAAC,MCrBK,MAAM,aAAa,MACK,MAAM,qBAAqB,cAAY,0HAC9D,KAFL,GAEK,EAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,oBADuE,IAA1E,GAA0E,KAAA,GAAA,EAAA,CAAA,GAAvD,EAAA,MAAN,MAAI,CAAA,CAAA,CAAA,CAAA,+BCCrB,GAAgB,QAAW,GAAa,CACtC,EAAI,UAAU,GAAgB,MAAQ,WAAY,EAAe,CACnE,EAEA,IAAA,GAAe,GCIf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,oBACN,MAAO,CACL,MAAO,CACL,KAAM,QACN,QAAS,EACX,CACF,CACF,CAAC,MClBK,MAAM,eAAe,YAEJ,MAAM,qBACZ,MAAM,qFAChB,KAJL,GAIK,EAAA,EAAA,EAAA,oBAHuE,IAAA,CAAtE,OAAA,EAAA,EAAA,gBAAK,OAAS,EAAA,MAAK,WAAA,YAAA,EAA8B,cAAY,gBACrD,EAAA,QAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAAiC,OAA7C,GAAmC,KAAG,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBACA,OAAtC,GAA6B,IAAE,EAAA,CAAA,+BCDnC,GAAkB,QAAW,GAAa,CACxC,EAAI,UAAU,GAAkB,MAAQ,WAAY,EAAiB,CACvE,EAEA,IAAA,GAAe,GCWf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,qBACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,oBAAqB,SAAS,EACtC,MAAQ,CACN,MAAO,CACL,WAAY,KAAK,KACnB,CACF,EACA,MAAO,CACL,MAAO,SAAU,EAAiB,CAChC,KAAK,WAAa,CACpB,CACF,EACA,QAAS,CACP,QAAS,UAAY,CACnB,KAAK,MAAM,oBAAqB,KAAK,UAAU,EAC/C,KAAK,MAAM,UAAW,KAAK,UAAU,CACvC,CACF,CACF,CAAC,MClDK,MAAM,gBAAgB,MACnB,MAAM,wBAAwB,iGAUhC,KAXL,GAWK,EAAA,EAAA,EAAA,oBADG,MATN,GASM,EAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,oBADF,QAAA,CANC,GAAI,EAAA,IAAM,EAAA,qCACF,EAAA,WAAU,EACnB,MAAM,mBACN,KAAK,WACJ,SAAU,EAAA,SACV,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,QAAO,kCAJP,EAAA,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+BCF3B,GAAmB,QAAW,GAAa,CACzC,EAAI,UAAU,GAAmB,MAAQ,WAAY,EAAkB,CACzE,EAEA,IAAA,GAAe,GCEf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,gBACR,CAAC,MCVK,MAAM,YAAY,4EAEjB,KAFL,GAEK,EAAA,EAAA,EAAA,YADK,EAAA,OAAA,SAAA,CAAA,CAAA,+BCCZ,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCEf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,qBACN,MAAO,CACL,OAAQ,CACN,KAAM,OACN,QAAS,CACX,EACA,SAAU,CACR,KAAM,OACN,QAAS,KACX,CACF,CACF,CAAC,MCpBK,MAAM,gBAAgB,4EAErB,KAFL,IAAA,EAAA,EAAA,iBACK,EAAA,QAAQ,EAAG,QAAA,EAAA,EAAA,iBAAM,IAAO,KAAK,aAAY,OAAA,EAAU,OAAO,EAAA,MAAM,CAAA,EAAA,CAAA,+BCCvE,GAAmB,QAAW,GAAa,CACzC,EAAI,UAAU,GAAmB,MAAQ,WAAY,EAAkB,CACzE,EAEA,IAAA,GAAe,GCEf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,iBACN,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAoB,CAC3B,GAAI,KAAK,MAAO,CACd,IAAM,EAAO,IAAI,KAAK,KAAK,KAAK,EAMhC,MAAO,GALM,IAAI,KAAK,eAAe,KAAM,CAAE,KAAM,SAAU,CAAC,EAAE,OAAO,CAK7D,EAAK,GAJJ,IAAI,KAAK,eAAe,KAAM,CAAE,MAAO,SAAU,CAAC,EAAE,OAAO,CAIpD,EAAG,GAHV,IAAI,KAAK,eAAe,KAAM,CAAE,IAAK,SAAU,CAAC,EAAE,OAAO,CAG5C,EAAE,GAFf,IAAI,KAAK,eAAe,KAAM,CAAE,KAAM,UAAW,OAAQ,EAAM,CAAC,EAAE,OAAO,CAEtD,EAAG,GADtB,IAAI,KAAK,eAAe,KAAM,CAAE,OAAQ,SAAU,CAAC,EAAE,OAAO,CACnC,GACtC,CACA,MAAO,GACT,CACF,CACF,CAAC,MC9BK,MAAM,YAAY,4EAEjB,KAFL,IAAA,EAAA,EAAA,iBACK,EAAA,OAAO,EAAA,CAAA,+BCCd,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCIf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,eACN,WAAY,CACV,QAAS,GACT,UAAW,EACb,EACA,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,UACX,EACA,KAAM,CACJ,KAAM,OACN,QAAS,IAAA,EACX,CACF,EACA,SAAU,CACR,QAAS,UAAoB,CAC3B,OAAQ,KAAK,MAAQ,KAAK,OAAS,mCACrC,CACF,CACF,CAAC,MC/B2D,MAAM,UAAU,gLAErE,KAFL,GAEK,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBADA,EAAA,KAAK,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GADW,EAAA,QAAP,OAAK,EAAA,CAAA,EAAwB,EAAA,MAAQ,EAAA,KAAK,CAAA,CAAA,+BCE1D,GAAa,QAAW,GAAa,CACnC,EAAI,UAAU,GAAa,MAAQ,WAAY,EAAY,CAC7D,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,kBACN,MAAO,CACL,QAAS,CACP,KAAM,OACN,QAAS,EACX,CACF,CACF,CAAC,MCdK,MAAM,aAAa,4EAA2B,KAAlD,GAAkD,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAvB,EAAA,OAAO,EAAA,CAAA,GAAA,EAAA,EAAA,YAAW,EAAA,OAAA,SAAA,CAAA,CAAA,+BCE/C,GAAgB,QAAW,GAAa,CACtC,EAAI,UAAU,GAAgB,MAAQ,WAAY,EAAe,CACnE,EAEA,IAAA,GAAe,GCAf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,gBACR,CAAC,MCRK,MAAM,YAAY,4EAAc,KAApC,GAAoC,EAAA,EAAA,EAAA,YAAL,EAAA,OAAA,SAAA,CAAA,CAAA,+BCEjC,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCDf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,iBACN,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,sCACX,CACF,CACF,CAAC,qHCbiE,EAAA,CAA9C,MAAO,EAAA,MAAM,UAAS,EAAA,CAAA,EAAS,KAAM,EAAA,6DCEzD,GAAe,QAAW,GAAa,CACrC,EAAI,UAAU,GAAe,MAAQ,WAAY,EAAc,CACjE,EAEA,IAAA,GAAe,GCQf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,qBACN,MAAO,CACL,QAAS,CACP,KAAM,OACN,aAAgB,CAAC,EACnB,CACF,EACA,SAAU,CACR,IAAK,UAAqB,CACxB,IAAK,IAAM,KAAO,KAAK,QACrB,GAAI,KAAK,QAAQ,GAAM,MAAO,GAEhC,MAAO,EACT,CACF,CACF,CAAC,YC9BmB,MAAM,6BAEhB,MAAM,cAAc,QAAQ,uCAFvB,EAAA,MAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAQL,QARR,GAQQ,EAAA,EAAA,EAAA,oBADD,KAAA,KAAA,EAAA,EAAA,EAAA,oBADE,KAJL,GAIK,iCAH6D,QAAA,KAAA,EAAA,EAAA,EAAA,oBAAR,IAAA,CAA9C,MAAM,qCAAqC,CAAA,CAAA,EAAA,EAAA,+BAAW,SAEhE,EAAA,mBAAQ,EAAA,OAAA,SAAA,sECHhB,GAAY,QAAW,GAAa,CAClC,EAAI,UAAU,GAAY,MAAQ,WAAY,EAAW,CAC3D,EAEA,IAAA,GAAe,GC8Cf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,cACN,WAAY,CACV,QAAS,EACX,EACA,MAAO,CACL,OAAQ,CACN,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,MACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,IACX,EACA,IAAK,CACH,KAAM,OACN,QAAS,CACX,EACA,SAAU,CACR,KAAM,QACN,QAAS,EACX,CACF,EACA,MAAO,CAAC,OAAQ,MAAO,MAAM,EAC7B,MAAQ,CACN,MAAO,CACL,WAAY,KAAK,QACjB,WAAY,KAAK,UAAY,MAC7B,SAAU,KAAK,MACjB,CACF,EACA,MAAO,CACL,QAAS,SAAU,EAAgB,EAAgB,CAC7C,IAAW,IACb,KAAK,WAAa,EAClB,KAAK,WAAa,KAAK,aAAe,MAE1C,CACF,EACA,SAAW,CACT,KAAK,cAAgB,CACf,KAAK,UACH,KAAK,SAAS,MAAQ,KAAK,KAC7B,KAAK,SAAS,KAAK,CAGzB,CAAC,CACH,EACA,QAAS,CACP,OAAS,CACP,OAAQ,KAAK,WAAb,CACE,IAAK,OACL,IAAK,OACH,KAAK,WAAa,MAClB,KAAK,MAAM,KAAK,EAChB,MACF,IAAK,MACH,KAAK,WAAa,OAClB,KAAK,MAAM,MAAM,EACjB,KACJ,CACF,EACA,aAAc,EAAc,CAC1B,IAAI,EAAU,GAAO,OACrB,KAAO,GAAS,CACd,GAAI,EAAQ,UAAY,QAAS,CAC/B,GAAe,GAAG,EAAQ,GAAG,UAAU,EACvC,MACF,CACA,EAAU,EAAQ,aACpB,CACF,EACA,SAAW,CACT,IAAI,EAAW,OAMf,OALI,KAAK,SAAS,MAAQ,KAAK,MAC7B,EAAW,KAAK,SACZ,KAAK,SAAS,MAAM,YAAY,EAChC,KAAK,OAAO,MAAM,YAAY,GAE5B,EAAR,CACE,IAAK,MACH,MACF,IAAK,MACC,KAAK,SACP,KAAK,SAAS,IAAI,KAAK,IAAK,MAAM,EAElC,KAAK,MAAM,OAAQ,MAAM,EAE3B,MAEF,QACM,KAAK,SACP,KAAK,SAAS,IAAI,KAAK,IAAK,KAAK,EAEjC,KAAK,MAAM,OAAQ,KAAK,CAE9B,CACF,CACF,CACF,CAAC,wBCvJU,MAAM,sBAAyD,cAAY,kBAE7D,MAAM,wBAED,MAAM,yDAuBX,MAAM,gIAExB,KAAA,CAxCF,GAAI,EAAA,KACL,OAAA,EAAA,EAAA,gBAAK,CAAC,gBAAe,sBACiB,EAAA,SAAM,8BAA2C,EAAA,uBAA+B,EAAA,YAKrH,MAAO,EAAA,SAAQ,KAAU,EAAA,QAEV,EAAA,WAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAKL,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,EAAA,oBAFA,SAAA,CAFD,KAAK,SAAS,MAAM,eAAgB,QAAK,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,cAAA,EAAA,aAAA,GAAA,CAAA,EAAc,aAAW,kEACa,IAAvF,GAAuF,KAAA,GAAA,EAAA,CAAA,GAAxC,kBAAN,MAAI,CAAA,CAAA,CAAA,CAAA,EAEpC,EAAA,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAA6B,MAAxC,EAAwC,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,EAAA,EAAA,GAE1B,EAAA,WAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBASV,MATN,GASM,EAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,oBADF,QAAA,CANA,IAAI,2CACK,EAAA,WAAU,EACnB,MAAM,mBACN,KAAK,WACJ,cAAe,EAAA,aAAU,OACzB,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,MAAK,kCAJL,EAAA,UAAU,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAqBZ,EAAA,SAAA,CAAA,IAAA,CAAA,EAAA,CAbK,EAAA,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAUL,SAAA,OAVa,KAAK,SAAS,MAAM,eAAgB,QAAK,AAAA,EAAA,MAAA,GAAA,IAAE,EAAA,SAAA,EAAA,QAAA,GAAA,CAAA,qBACvD,EAAA,OAAA,SAAA,EACA,EAAA,QAAQ,MAAQ,EAAA,MAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAOtB,IAAA,OANA,OAAA,EAAA,EAAA,gBAAK,CAAC,YAAW,cACmB,EAAA,OAAO,MAAM,YAAW,IAAA,qBAA0C,EAAA,OAAO,MAAM,YAAW,IAAA,iCAAuD,SAAS,EAAA,OAAO,MAAM,YAAW,CAAA,mEAO3M,EAAA,OAAA,UAAA,CAAA,IAAA,CAAA,CAAA,EACJ,EAAA,SAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAA6B,MAAxC,EAAwC,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,EAAA,+BCrC9C,GAAY,QAAW,GAAa,CAClC,EAAI,UAAU,GAAY,MAAQ,WAAY,EAAW,CAC3D,EAEA,IAAA,GAAe,GCEf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,aACN,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IACX,EACA,UAAW,CACT,KAAM,QACN,QAAS,EACX,CACF,EACA,SAAU,CACR,MAAO,UAAoB,CAIvB,OAHE,KAAK,UACA,KAAK,MAAQ,gBAEb,KAAK,KAEhB,CACF,CACF,CAAC,sFC/BM,KAAA,CAFA,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,qBAChB,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,EAAA,+BCCZ,GAAW,QAAW,GAAa,CACjC,EAAI,UAAU,GAAW,MAAQ,WAAY,EAAU,CACzD,EAEA,IAAA,GAAe,GCwBf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,SACN,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,CACX,CACF,EACA,MAAO,CAAC,KAAK,EACb,MAAQ,CACN,MAAO,CACL,KAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,CAC9D,CACF,EACA,QAAS,CACP,WAAY,EAAwB,CAClC,OAAO,KAAK,OAAO,QAAQ,EAAM,WAAa,IAAA,EAChD,EACA,KAAM,EAAiB,CACrB,KAAK,MAAM,MAAO,CAAC,CACrB,CACF,CACF,CAAC,MCpDM,MAAM,SAAS,6HAwBd,MAxBN,GAwBM,+CAbO,EAAA,SAAA,MAAA,EAAA,EAAA,YAVa,EAAA,KAAP,+DAAmB,CAAG,EAAA,CAE7B,EAAA,WAAW,CAAG,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAOpB,QAAA,OANC,GAAE,QAAU,EAAA,KAAI,GAAI,IACpB,OAAA,EAAA,EAAA,gBAAK,UAAY,GAAG,EACrB,KAAK,QACJ,KAAI,QAAU,EAAA,OACd,QAAS,EAAA,QAAU,EAAG,EACtB,SAAM,GAAE,EAAA,KAAK,CAAG,sFAShB,KAAA,KAAA,GAAA,EAAA,EAAA,WAAA,EAAA,GAAA,EAAA,EAAA,oBADQ,EAAA,SAAA,MAAA,EAAA,EAAA,YAJa,EAAA,KAAP,+DAAmB,CAAG,EAAA,CAC3B,EAAA,WAAW,CAAG,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEnB,KAAA,OAFuB,OAAA,EAAA,EAAA,gBAAK,UAAY,GAAG,6BACkC,QAAA,CAAxE,IAAG,QAAU,EAAA,KAAI,GAAI,GAAA,EAAA,EAAA,EAAA,EAAA,YAA2C,EAAA,OAAA,QAAf,EAAG,OAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,EAAA,EAAA,0DAQvD,EAAA,SAAA,MAAA,EAAA,EAAA,YAJa,EAAA,KAAP,+DAAmB,CAAG,EAAA,CAC1B,EAAA,WAAW,CAAG,IAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,oBAEnB,MAAA,OAFuB,OAAA,EAAA,EAAA,gBAAK,UAAY,EAAG,gBAAA,qBACT,EAAA,OAAA,QAAjB,EAAG,SAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,oBAAA,GAAA,EAAA,CAAA,EAAA,EAAA,yCCnBhC,GAAO,QAAW,GAAa,CAC7B,EAAI,UAAU,GAAO,MAAQ,WAAY,EAAM,CACjD,EAEA,IAAA,GAAe,GCaf,IAAA,EAAA,EAAA,iBAA+B,CAC7B,KAAM,WACN,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,OACN,QAAS,IAAA,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,IAAA,EACX,EACA,WAAY,CACV,KAAM,QACN,QAAS,EACX,EACA,QAAS,CACP,KAAM,QACN,QAAS,EACX,EACA,MAAO,CACL,KAAM,OACN,QAAS,EACX,EACA,OAAQ,CACN,KAAM,OACN,QAAS,cACX,EACA,QAAS,CACP,KAAM,OACN,QAAS,cACX,CACF,EACA,MAAO,CAAC,mBAAmB,EAC3B,MAAQ,CACN,MAAO,CACL,MAAO,aAAe,KAAK,OAAS,GACtC,CACF,EACA,QAAS,CACP,OAAQ,UAAkB,CAExB,GAAI,KAAK,QAAS,CAChB,IAAM,EAAW,SAAS,eAAgB,KAAa,IAAI,EACvD,IACF,KAAK,MAAM,oBAAqB,EAAS,OAAO,EAChD,EAAS,MAAM,EACf,EAAS,KAAK,EACd,EAAS,MAAM,EAEnB,CACF,CACF,CACF,CAAC,gLCjEG,QAAA,CANC,GAAI,EAAA,KACL,KAAK,WACJ,OAAA,EAAA,EAAA,gBAAO,oBAAoB,EAC3B,QAAS,EAAA,WACT,SAAU,EAAA,QAAO,KAAA,GACjB,SAAM,AAAA,EAAA,KAAA,GAAE,EAAA,OAAM,wCAOhB,QAAA,CALO,GAAI,EAAA,GAAK,OAAA,EAAA,EAAA,gBAAO,EAAA,KAAK,EAAG,IAAK,EAAA,KAAO,SAAU,EAAA,QAAO,KAAA,8BACP,IAAA,CAA/C,OAAA,EAAA,EAAA,gBAAK,GAAK,EAAA,OAAM,OAAA,EAAU,cAAY,yCAGzC,IAAA,CAFC,OAAA,EAAA,EAAA,gBAAK,GAAK,EAAA,QAAO,OAAA,EAClB,cAAY,4DACT,EAAA,KAAK,EAAA,CAAA,4CCVd,GAAS,QAAW,GAAa,CAC/B,EAAI,UAAU,GAAS,MAAQ,WAAY,EAAQ,CACrD,EAEA,IAAA,GAAe,GCPF,GAAQ,CACnB,MAAO,CACL,IAAK,UACL,MAAO,UACP,MAAO,UACP,KAAM,UACN,SAAU,UACV,KAAM,UACN,SAAU,UACV,MAAO,UACP,KAAM,UACN,MAAO,UACP,OAAQ,UACR,OAAQ,UACR,IAAK,UACL,KAAM,UACN,IAAK,UACL,IAAK,UACL,MAAO,SACT,EACA,QAAS,CACP,KAAM,OACN,MAAO,OACP,OAAQ,OACR,MAAO,OACP,KAAM,MACN,MAAO,MACP,KAAM,KACR,CACF,EC3BM,GAAM,CACV,IAAK,MACL,KAAM,OACN,KAAM,OACN,KAAM,MACR,EAEM,EAAU,CACd,GAAI,mBACJ,WAAY,mEACZ,OAAQ,qDACR,IAAK,2BACL,YAAa,mEACb,QAAS,qDACT,GAAI,eACJ,WAAY,yCACZ,OAAQ,qDACR,GAAI,WACJ,WAAY,4BACZ,OAAQ,qDACR,IAAK,mBACL,YAAa,mBACb,QAAS,qDACT,IAAK,mBACL,YAAa,4BACb,QAAS,qDACT,GAAI,aACJ,WAAY,kDACZ,OAAQ,qDACR,eAAgB,qDAChB,eAAgB,qDAChB,iBAAkB,qDAClB,WAAY,qDACZ,mBAAoB,qDACpB,cAAe,qDACf,IAAK,gBACL,YAAa,2BACb,QAAS,qDACT,KAAM,wBACN,aAAc,2BACd,SAAU,qDACV,GAAI,eACJ,WAAY,sCACZ,OAAQ,oDACV,EAEM,EAAO,CACX,YAAa,YACb,gBAAiB,kDAEjB,SAAU,QACV,aAAc,kDACd,WAAY,UACZ,eAAgB,kDAChB,WAAY,UACZ,eAAgB,kDAEhB,SAAU,mBACV,aAAc,kDACd,QAAS,kBACT,YAAa,kDAEb,WAAY,UACZ,eAAgB,kDAChB,WAAY,oBACZ,eAAgB,kDAChB,iBAAkB,gBAClB,qBAAsB,kDACtB,eAAgB,aAChB,mBAAoB,kDACpB,eAAgB,aAChB,mBAAoB,kDACpB,UAAW,SACX,cAAe,kDACf,cAAe,aACf,kBAAmB,kDAEnB,YAAa,UACb,gBAAiB,kDACjB,WAAY,WACZ,eAAgB,kDAChB,aAAc,YACd,iBAAkB,kDAClB,YAAa,UACb,gBAAiB,kDACjB,kBAAmB,gBACnB,sBAAuB,kDAEvB,YAAa,UACb,gBAAiB,kDACjB,YAAa,oBACb,gBAAiB,kDACjB,kBAAmB,gBACnB,sBAAuB,kDACvB,gBAAiB,aACjB,oBAAqB,kDACrB,gBAAiB,aACjB,oBAAqB,kDACrB,WAAY,SACZ,eAAgB,kDAChB,eAAgB,aAChB,mBAAoB,kDAEpB,SAAU,qBACV,aAAc,kDAEd,QAAS,wBACT,YAAa,kDAEb,QAAS,OACT,YAAa,kDACb,cAAe,aACf,kBAAmB,iDACrB,EAEM,GAAQ,CACZ,QAAS,KACT,OAAQ,EACR,QAAS,EACT,QAAS,EACT,UAAW,CACb,EAEM,GAAgB,CACpB,GAAG,GACH,kBAAmB,EACnB,gBAAiB,EACjB,iBAAkB,CACpB,EAEM,GAAO,CACX,QAAS,KACT,MAAO,EACP,QAAS,EACT,WAAY,EACZ,OAAQ,CACV,EAEM,EAAO,CACX,GAAI,CACF,GAAI,KACJ,SAAU,EAAQ,WAClB,MAAO,EAAQ,GACf,SAAU,CAAC,EAAQ,MAAM,EACzB,MAAO,CAAC,EAAK,WAAW,EACxB,WAAY,EAAK,IACf,GACE,EACA,6CAA6C,GAAO,KACpD,kDAAkD,GAAO,IAC3D,EACF,SAAU,EAAK,IAAQ,GAAM,EAAK,CAAG,EACrC,QAAS,EACX,EAEA,IAAK,CACH,GAAI,MACJ,SAAU,EAAQ,YAClB,MAAO,EAAQ,IACf,SAAU,CAAC,EAAQ,OAAO,EAC1B,MAAO,CAAC,EAAK,WAAW,EACxB,WAAY,EAAK,IAAQ,kDAAkD,GAAO,KAClF,SAAU,EAAK,IAAQ,GAAM,EAAK,CAAG,EACrC,QAAS,EACX,EAEA,GAAI,CACF,GAAI,KACJ,SAAU,EAAQ,WAClB,MAAO,EAAQ,GACf,SAAU,CAAC,EAAQ,MAAM,EACzB,MAAO,CAAC,EACR,WAAY,EAAK,IAAQ,GAAM,EAAK,CAAG,EACvC,SAAU,EAAK,IAAQ,GAAM,EAAK,CAAG,EACrC,QAAS,EACX,EAEA,GAAI,CACF,GAAI,KACJ,SAAU,EAAQ,WAClB,MAAO,EAAQ,GACf,SAAU,CAAC,EAAQ,MAAM,EACzB,MAAO,CACL,EAAK,eACL,EAAK,eACL,EAAK,qBACL,EAAK,mBACL,EAAK,mBACL,EAAK,cACL,EAAK,iBACP,EACA,WAAY,EAAK,IACf,GACE,EACA,0CAA0C,EAAM,GAAG,EAAI,GAAK,GAAG,OAC/D,qCAAqC,EAAM,GAAG,EAAI,GAAK,GAAG,MAC5D,EACF,SAAU,EAAK,IAAQ,GAAM,EAAK,EAAK,iBAAiB,EACxD,QAAS,EACX,EAEA,IAAK,CACH,GAAI,MACJ,SAAU,EAAQ,YAClB,MAAO,EAAQ,IACf,SAAU,CAAC,EAAQ,OAAO,EAC1B,MAAO,CACL,EAAK,gBACL,EAAK,eACL,EAAK,iBACL,EAAK,sBACL,EAAK,eACP,EACA,WAAY,EAAK,IAAQ,kCAAkC,GAAO,GAAG,UACrE,SAAU,EAAK,IAAQ,GAAM,EAAK,CAAG,EACrC,QAAS,EACX,EAEA,IAAK,CACH,GAAI,MACJ,SAAU,EAAQ,YAClB,MAAO,EAAQ,IACf,SAAU,CAAC,EAAQ,OAAO,EAC1B,MAAO,CACL,EAAK,gBACL,EAAK,gBACL,EAAK,sBACL,EAAK,oBACL,EAAK,oBACL,EAAK,eACL,EAAK,kBACP,EACA,WAAY,EAAK,IACf,GACE,EACA,0CAA0C,EAAM,GAAG,EAAI,GAAK,GAAG,OAC/D,6CAA6C,EAAM,GAAG,EAAI,GAAK,GAAG,MACpE,EACF,SAAU,EAAK,IAAQ,GAAM,EAAK,EAAK,iBAAiB,EACxD,QAAS,EACX,EAEA,GAAI,CACF,GAAI,KACJ,SAAU,EAAQ,WAClB,MAAO,EAAQ,GACf,SAAU,CACR,EAAQ,OACR,EAAQ,eACR,EAAQ,eACR,EAAQ,iBACR,EAAQ,WACR,EAAQ,mBACR,EAAQ,aACV,EACA,MAAO,CAAC,EAAK,YAAa,EAAK,YAAY,EAC3C,WAAY,EAAK,IACf,GACE,EACA,kCAAkC,EAAI,aACtC,0CAA0C,EAAI,YAChD,EACF,SAAU,EAAK,IAAQ,GAAM,EAAK,EAAK,mBAAmB,EAC1D,QAAS,EACX,EACA,GAAI,CACF,GAAI,KACJ,SAAU,EAAQ,WAClB,MAAO,EAAQ,GACf,SAAU,CAAC,EAAQ,MAAM,EACzB,MAAO,CAAC,EAAK,YAAa,EAAK,iBAAiB,EAChD,WAAY,EAAK,IACf,GACE,EACA,sCAAsC,IACtC,0CAA0C,GAC5C,EACF,SAAU,EAAK,IAAQ,GAAM,EAAK,EAAK,WAAW,EAClD,QAAS,EACX,EAEA,IAAK,CACH,GAAI,MACJ,SAAU,EAAQ,YAClB,SAAU,CAAC,EAAQ,OAAO,EAC1B,MAAO,CAAC,EAAK,YAAY,EACzB,MAAO,EAAQ,IACf,WAAY,EAAK,IACf,GACE,EACA,4BAA4B,EAAI,QAChC,6BAA6B,EAAI,OACnC,EACF,SAAU,EAAK,IAAQ,GAAM,EAAK,EAAK,YAAY,EACnD,QAAS,EACX,EAEA,KAAM,CACJ,GAAI,OACJ,SAAU,EAAQ,aAClB,MAAO,EAAQ,KACf,SAAU,CAAC,EAAQ,QAAQ,EAC3B,MAAO,CAAC,EAAK,YAAY,EACzB,WAAY,EAAK,IAAQ,6BAA6B,EAAI,QAC1D,SAAU,EAAK,IAAQ,GAAM,EAAK,EAAK,YAAY,EACnD,QAAS,EACX,CACF,EAIa,EAAK,CAChB,UACA,OACA,SACA,iBACA,QACA,MACF,EAIA,SAAS,GAAO,EAAK,EAAK,EAAM,CAC9B,OAAO,GACL,EACA,0CAA0C,GAAO,KAAK,GAAQ,KAC9D,kCAAkC,GAAO,KAAK,GAAQ,IACxD,CACF,CAEA,SAAS,GAAe,EAAK,EAAY,EAAU,CACjD,OAAO,GAAU,EAAK,EAAY,EAAU,CAAC,GAAI,IAAK,GAAI,IAAI,CAAC,CACjE,CAEA,SAAS,GAAW,EAAK,EAAQ,EAAU,EAAO,CAAC,GAAI,IAAI,EAAG,CAC5D,OAAO,EAAK,SAAS,CAAG,EAAI,EAAS,CACvC,CAIA,SAAS,GAAqB,EAAY,EAAM,CAI9C,IAAI,EAAO,KACX,IAAK,IAAM,KAAO,EAAM,CACtB,IAAM,EAAU,GAAgB,EAAY,CAAG,EAC1C,IAEH,IAAS,MACR,EAAK,SAAW,EAAG,cAAc,mBAChC,EAAQ,SAAW,EAAG,cAAc,QACrC,EAAK,OAAS,EAAG,KAAK,OAAS,EAAQ,OAAS,EAAG,KAAK,SAEzD,EAAO,EAEX,CACA,OAAO,CACT,CAEA,SAAS,GAAiB,EAAY,EAAK,CACzC,IAAK,IAAM,KAAW,EAAW,cAAc,UAAY,CAAC,EAC1D,GACE,EAAQ,UAAY,GACpB,CAAC,EAAG,cAAc,OAAQ,EAAG,cAAc,iBAAiB,EAAE,SAAS,EAAQ,MAAM,EAErF,OAAO,EAGX,OAAO,IACT,CAEA,SAAS,GAAO,EAAS,CAEvB,MAAO,CACL,GAAI,EAAQ,GACZ,MAAO,EAAQ,MACf,SAAU,EAAQ,SAClB,IAAK,IACL,SAAU,GACV,MAAO,IAAA,EACT,CACF,CAEA,SAAS,GAAU,EAAS,CAE1B,MAAO,CACL,GAAG,GAAM,CAAO,EAChB,SAAU,EACZ,CACF,CAEA,SAAS,GAAY,EAAS,EAAK,EAAK,CAEtC,MAAO,CACL,GAAG,GAAM,CAAO,EAChB,IAAK,EAAQ,UAAU,EAAK,CAAG,CACjC,CACF,CAEA,SAAS,GAAO,EAAS,EAAK,EAAK,CAEjC,MAAO,CACL,GAAG,GAAW,EAAS,EAAK,CAAG,EAC/B,MAAO,OACT,CACF,CAEA,SAAS,GAAW,EAAS,EAAK,EAAK,CAErC,MAAO,CACL,GAAG,GAAM,CAAO,EAChB,IAAK,EAAQ,QAAQ,EAAK,CAAG,EAC7B,MAAO,WACT,CACF,CAEA,SAAS,GAAS,EAAS,EAAK,EAAK,CAEnC,MAAO,CACL,GAAG,GAAM,CAAO,EAChB,IAAK,EAAQ,QAAQ,EAAK,CAAG,EAC7B,MAAO,SACT,CACF,CAEA,SAAS,GAAS,EAAS,EAAS,EAAK,EAAK,EAAS,CAqBrD,OAnBK,EASD,CAAC,EAAG,cAAc,iBAAiB,EAAE,SAAS,EAAQ,MAAM,EACvD,GAAQ,EAAS,EAAK,CAAG,EAG9B,EAAQ,OAAS,EAAG,KAAK,MAAc,GAAM,EAAS,EAAK,CAAG,EAG9D,EAAgB,GAAW,EAAS,EAAK,CAAG,EAGzC,GAAS,CAAO,EAjBjB,CAAC,EAAK,IAAI,GAAI,EAAK,IAAI,GAAI,EAAK,KAAK,EAAE,EAAE,SAAS,EAAQ,EAAE,EAAU,KAGnE,GAAU,EAAS,EAAK,CAAG,CAetC,CAEA,SAAS,GAAiB,EAAY,EAAS,EAAK,EAAK,CAEvD,OAAO,GACL,EAFc,GAAoB,EAAY,EAAQ,QAGhD,EACN,EACA,EACA,CAAC,CAAC,EAAW,MAAM,KAAK,GAAK,EAAQ,MAAM,SAAS,EAAE,QAAQ,CAAC,CACjE,CACF,CAEA,SAAS,GAAmB,EAAY,EAAK,EAAK,CAChD,IAAM,EAAM,CAAC,GAAW,EAAK,GAAI,EAAK,CAAG,CAAC,EAEpC,EAAM,GAAgB,EAAY,EAAK,IAAK,EAAK,CAAG,EACtD,GAAK,EAAI,KAAK,CAAG,EACrB,EAAI,KAAK,GAAgB,EAAY,EAAK,GAAI,EAAK,CAAG,CAAC,EACvD,IAAM,EAAM,GAAgB,EAAY,EAAK,IAAK,EAAK,CAAG,EACtD,GAAK,EAAI,KAAK,CAAG,EACrB,EAAI,KAAK,GAAgB,EAAY,EAAK,GAAI,EAAK,CAAG,CAAC,EACvD,EAAI,KAAK,GAAgB,EAAY,EAAK,GAAI,EAAK,CAAG,CAAC,EACvD,EAAI,KAAK,GAAgB,EAAY,EAAK,IAAK,EAAK,CAAG,CAAC,EACxD,IAAM,EAAO,GAAgB,EAAY,EAAK,KAAM,EAAK,CAAG,EAG5D,OAFI,GAAM,EAAI,KAAK,CAAI,EAEhB,CACT,CAaA,SAAgB,GAAU,EAAa,EAAK,EAAK,CAC/C,IAAK,IAAM,KAAc,EACvB,GAAI,EAAW,cAAc,mBAAqB,EAChD,OAAO,GAAkB,EAAY,EAAK,CAAG,EAIjD,MAAO,CAEL,GAAW,EAAK,EAAE,EAClB,GAAS,EAAK,EAAE,EAChB,GAAS,EAAK,EAAE,EAChB,GAAS,EAAK,EAAE,EAChB,GAAS,EAAK,GAAG,CACnB,CACF,CAUA,SAAgB,GAAqB,EAAa,EAAK,EAAK,CAC1D,IAAI,EAAQ,KAAK,MAAM,KAAK,UAAU,CAAW,CAAC,EAclD,OAXI,IACF,EAAQ,EAAM,OAAO,GACnB,EAAW,aAAa,SAAS,KAAK,GAAW,EAAQ,UAAY,CAAG,CAC1E,GAIE,IACF,EAAQ,EAAM,OAAO,GAAc,EAAW,MAAM,KAAK,GAAQ,EAAK,WAAa,CAAG,CAAC,GAGlF,CACT,CAQA,SAAgB,GAAiB,EAAK,CACpC,OAAO,GACL,EACA,+CACA,sCACF,CACF,CChiBA,SAAgB,IAAiB,CAE/B,MAAO,CAEL,EAAG,KAAK,GACR,EAAG,KAAK,GACR,EAAG,KAAK,GACR,EAAG,KAAK,IACR,EAAG,KAAK,IACR,EAAG,KAAK,GACR,EAAG,KAAK,GACR,EAAG,KAAK,GACV,CACF,CAGA,IAAa,GAAM,EAAG,KClBhB,GAAO,IAET,GAAQ,CAAC,EAUb,SAAgB,GAAS,EAAQ,EAAa,GAAI,EAAgB,GAAO,CACvE,IAAM,EAAO,GAAM,IAAe,GAAU,GAAU,CAAU,CAAC,EAM/D,OALE,OAAO,KAAK,EAAK,EAAE,OAAS,MAAK,GAAQ,CAAC,GAC9C,GAAM,GAAc,EAEX,GADL,EACkB,EAAO,YAAY,EAEnB,EAFsB,EAAM,CAED,CAEnD,CAIA,SAAS,GAAc,EAAQ,EAAS,EAAe,CACrD,GAAI,OAAO,GAAY,SAAU,CAC/B,IAAM,EAAO,EAAQ,WAAW,GAAM,GAAG,EAKvC,OAJE,EAAK,KAAO,IAAY,CAAC,GAAa,EAAQ,EAAK,UAAU,CAAC,EAAG,CAAa,EAC9E,EACK,EAAO,SAAS,CAAI,EAEpB,EAAO,YAAY,EAAE,SAAS,EAAK,YAAY,CAAC,CAE3D,MACE,OAAQ,EAAQ,GAAhB,CACE,IAAK,IACH,OAAO,GAAa,EAAQ,EAAQ,EAAE,GAAK,GAAa,EAAQ,EAAQ,EAAE,EAC5E,IAAK,IACH,OAAO,GAAa,EAAQ,EAAQ,EAAE,GAAK,GAAa,EAAQ,EAAQ,EAAE,EAC5E,QACE,MAAO,EACX,CAEJ,CAEA,SAAgB,GAAW,EAAY,CAErC,IAAM,EAAS,CAAC,EACZ,EAAY,GAChB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAW,OAAQ,IACjC,EACE,EAAW,KAAO,EAEpB,EAAY,GAGZ,EAAO,KAAK,CAAC,GAAG,EAAE,SAAS,EAAW,EAAE,EAAI,GAAO,EAAW,EAAE,EAG9D,CAAC,IAAK,GAAG,EAAE,SAAS,EAAW,EAAE,EAEnC,EAAY,EAAW,GAGvB,EAAO,KAAK,EAAW,EAAE,EAM/B,IAAM,EAAU,EAAO,KAAK,EAAE,EAAE,QAAQ,OAAQ,GAAG,EAAE,KAAK,EAC1D,GAAI,EAAQ,QAAU,EAAG,MAAO,GAEhC,IAAM,EAAQ,EAAQ,MAAM,GAAG,EAC/B,GAAI,EAAM,QAAU,EAAG,MAAO,GAE9B,IAAM,EAAY,CAAC,EACd,CAAC,MAAO,GAAG,EAAE,SAAS,EAAM,EAAE,GAAG,EAAU,KAAK,EAAM,MAAM,CAAC,EAElE,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAChC,OAAQ,EAAM,GAAd,CACE,IAAK,MACL,IAAK,IACL,IAAK,KACH,OAAQ,EAAM,EAAE,GAAhB,CACE,IAAK,MACL,IAAK,IACC,EAAM,EAAI,KACZ,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,EAAM,EAAE,EAAE,GAE3B,MACF,KAAK,IAAA,GACH,MACF,QACE,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,EAAM,EAAE,CAC3B,CACA,MACF,IAAK,KACL,IAAK,IACL,IAAK,KACH,OAAQ,EAAM,EAAE,GAAhB,CACE,IAAK,MACL,IAAK,IACC,EAAM,EAAI,KACZ,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,EAAM,EAAE,EAAE,GAE3B,MACF,KAAK,IAAA,GACH,MACF,QACE,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,EAAM,EAAE,CAC3B,CACA,MACF,IAAK,MACL,IAAK,IACH,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,EAAM,EAAE,EAAE,EACzB,MACF,QACE,EAAU,KAAK,GAAG,EAClB,EAAU,KAAK,EAAM,EAAE,CAC3B,CAEF,MAAO,IAAI,EAAU,KAAK,GAAG,EAAE,GAAG,QAAQ,OAAQ,IAAI,EAAE,KAAK,CAC/D,CAEA,SAAgB,GAAW,EAAY,CACrC,IAAM,EAAK,EAAW,QAAQ,KAAK,EACnC,GAAI,GAAM,EACR,MAAO,CAAC,IAAK,GAAU,EAAW,UAAU,EAAG,CAAE,CAAC,EAAG,GAAU,EAAW,UAAU,EAAK,CAAC,CAAC,CAAC,EAG9F,IAAM,EAAM,EAAW,QAAQ,KAAK,EACpC,GAAI,GAAO,EACT,MAAO,CAAC,IAAK,GAAU,EAAW,UAAU,EAAG,CAAG,CAAC,EAAG,GAAU,EAAW,UAAU,EAAM,CAAC,CAAC,CAAC,EAGhG,IAAM,EAAQ,EAAW,QAAQ,GAAG,EASpC,OARI,GAAS,EACJ,CACL,IACA,GAAU,EAAW,UAAU,EAAG,CAAK,CAAC,EACxC,GAAU,EAAW,UAAU,EAAQ,CAAC,CAAC,CAC3C,EAGK,CACT,CCtJA,IAAA,GAAe,CACb,QAAU,GAAQ,CAChB,IAAI,EAAK,EACT,EAAI,MAAM,CACR,aAAc,UAAyB,CACrC,IAAI,EACE,EAAM,QAAS,IACrB,OAAO,iBAAiB,MAAO,EAAM,CAAC,EAAG,EAAI,KAAO,CAAE,IAAK,UAAgB,CAAE,OAAO,CAAI,CAAE,EAAG,EAAI,CACnG,CACF,CAAC,CACH,CACF,ECgDA,SAAgB,IAAsB,CACpC,MAAO,CACL,QAAA,GACA,eAAA,GACA,eAAA,GACA,OAAA,GACA,mBAAA,GACA,WAAA,GACA,QAAA,GACA,aAAA,GACA,aAAA,GACA,UAAA,GACA,YAAA,GACA,OAAA,GACA,eAAA,GACA,QAAA,GACA,SAAA,GACA,QAAA,GACA,eAAA,GACA,YAAA,GACA,UAAA,GACA,kBAAA,GACA,UAAA,GACA,SAAA,GACA,MAAA,GACA,OAAA,GACA,aAAA,GACA,OAAA,GACA,OAAA,GACA,iBAAA,GACA,cAAA,GACA,kBAAA,GACA,cAAA,GACA,kBAAA,GACA,UAAA,GACA,QAAA,GACA,WAAA,GACA,kBAAA,GACA,gBAAA,GACA,kBAAA,GACA,mBAAA,GACA,eAAA,GACA,mBAAA,GACA,eAAA,GACA,aAAA,GACA,gBAAA,GACA,eAAA,GACA,eAAA,GACA,mBAAA,GACA,YAAA,GACA,WAAA,GACA,OAAA,GACA,SAAA,EACF,CACF,CAEA,IAAa,GAAY,CACvB,qBACA,cACA,qBACA,gBACA,sBACA,eACA,qBACA,cACA,cACA,eACA,eACA,cACA,aACA,eACA,yBACA,kBACA,uBACA,gBACA,sBACA,eACA,sBACA,eACA,sBACA,eACA,mBACA,eACA,eACF,EAOA,SAAgB,IAAsD,CACpE,MAAO,CAAC,EAAG,CACb,CAUA,SAAgB,GAAS,EAAa,EAAsB,CAC1D,IAAM,EAAQ,KAAK,MAAM,KAAK,UAAU,CAAM,CAAC,EAE/C,IAAK,IAAM,KAAQ,EACb,OAAO,EAAQ,IAAU,UAAY,CAAC,MAAM,QAAQ,EAAQ,EAAK,EACnE,EAAM,GAAQ,GAAQ,EAAO,IAAS,CAAC,EAAG,EAAQ,EAAK,EAEvD,EAAM,GAAQ,EAAQ,GAI1B,OAAO,CACT,CASA,SAAgB,GAAc,EAAa,EAAsB,CAC/D,MAAO,CAAE,MAAO,GAAQ,EAAQ,CAAO,CAAE,CAC3C,CClIA,IAAM,GAAa,CACjB,QAAA,GACA,eAAA,GACA,eAAA,GACA,OAAA,GACA,mBAAA,GACA,WAAA,GACA,QAAA,GACA,aAAA,GACA,aAAA,GACA,UAAA,GACA,YAAA,GACA,OAAA,GACA,eAAA,GACA,QAAA,GACA,SAAA,GACA,QAAA,GACA,eAAA,GACA,YAAA,GACA,UAAA,GACA,kBAAA,GACA,UAAA,GACA,SAAA,GACA,MAAA,GACA,OAAA,GACA,aAAA,GACA,OAAA,GACA,OAAA,GACA,iBAAA,GACA,cAAA,GACA,kBAAA,GACA,cAAA,GACA,kBAAA,GACA,UAAA,GACA,QAAA,GACA,WAAA,GACA,kBAAA,GACA,gBAAA,GACA,kBAAA,GACA,mBAAA,GACA,eAAA,GACA,mBAAA,GACA,eAAA,GACA,aAAA,GACA,gBAAA,GACA,eAAA,GACA,eAAA,GACA,mBAAA,GACA,YAAA,GACA,WAAA,GACA,OAAA,GACA,SAAA,GAEA,iBAAA,GAEA,KAAA,EACF,EAEA,SAAgB,GAAM,EAAgB,CAEpC,IAAK,IAAM,KAAa,GAEtB,EAAI,UAAU,GAAW,GAAW,KAAM,GAAW,EAAU,CAEnE"}
|