@wavelengthusaf/components 3.4.0 → 4.0.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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/prop-types/node_modules/react-is/index.js","../../../../node_modules/object-assign/index.js","../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../node_modules/prop-types/lib/has.js","../../../../node_modules/prop-types/checkPropTypes.js","../../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../../node_modules/prop-types/index.js","../../../../node_modules/react-is/cjs/react-is.production.js","../../../../node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/react-is/index.js","../../src/web-components/sample-component.ts","../../src/web-components/wavelength-banner.ts","../../src/web-components/wavelength-button.ts","../../src/form/zodToFields.ts","../../../../node_modules/zod/v4/core/core.js","../../../../node_modules/zod/v4/core/util.js","../../../../node_modules/zod/v4/core/errors.js","../../../../node_modules/zod/v4/core/parse.js","../../../../node_modules/zod/v4/core/checks.js","../../../../node_modules/zod/v4/core/doc.js","../../../../node_modules/zod/v4/core/versions.js","../../../../node_modules/zod/v4/core/schemas.js","../../../../node_modules/zod/v4/core/registries.js","../../../../node_modules/zod/v4/core/api.js","../../../../node_modules/zod/v4/classic/errors.js","../../../../node_modules/zod/v4/classic/parse.js","../../../../node_modules/zod/v4/classic/schemas.js","../../src/form/validator.ts","../../src/web-components/wavelength-form.ts","../../src/web-components/wavelength-progress-bar.ts","../../src/web-components/wavelength-input.ts","../../src/styles/fontBase64.tsx","../../src/styles/fontSheet.tsx","../../src/web-components/wavelength-title-bar.ts","../../src/functions/math.ts","../../src/functions/string.ts","../../src/components/buttons/WavelengthButton/WavelengthButton.tsx","../../src/components/buttons/WavelengthDropdownButton/WavelengthDropdownButton.tsx","../../../../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../../../../node_modules/@mui/styled-engine/index.js","../../../../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../../../../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../../../../node_modules/@mui/system/esm/createTheme/shape.js","../../../../node_modules/@mui/system/esm/responsivePropType.js","../../../../node_modules/@mui/system/esm/merge.js","../../../../node_modules/@mui/system/esm/breakpoints.js","../../../../node_modules/@mui/utils/esm/capitalize/capitalize.js","../../../../node_modules/@mui/system/esm/style.js","../../../../node_modules/@mui/system/esm/memoize.js","../../../../node_modules/@mui/system/esm/spacing.js","../../../../node_modules/@mui/system/esm/createTheme/createSpacing.js","../../../../node_modules/@mui/system/esm/compose.js","../../../../node_modules/@mui/system/esm/borders.js","../../../../node_modules/@mui/system/esm/cssGrid.js","../../../../node_modules/@mui/system/esm/palette.js","../../../../node_modules/@mui/system/esm/sizing.js","../../../../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../../../../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../../../../node_modules/@mui/system/esm/createTheme/applyStyles.js","../../../../node_modules/@mui/system/esm/createTheme/createTheme.js","../../../../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../../../../node_modules/@mui/system/esm/createStyled.js","../../../../node_modules/@mui/system/esm/styled.js","../../src/components/buttons/WavelengthDropdownButton/WavelengthAutocomplete.tsx","../../src/components/buttons/WavelengthFileDownloader.tsx","../../src/components/buttons/WavelengthButton/WavelengthStyledButton.tsx","../../src/themes/WavelengthAppTheme.tsx","../../src/themes/Palette.tsx","../../src/components/containers/WavelengthBox/WavelengthBox.tsx","../../src/components/containers/WavelengthContentPlaceholder/WavelengthContentPlaceholder.tsx","../../src/components/example/WavelengthExampleComponent.tsx","../../src/components/search/WavelengthSearch.tsx","../../src/components/search/WavelengthSearchTextField.tsx","../../src/components/logos/applogo/WavelengthAppLogo.tsx","../../src/components/PageComponents/WavelengthNotAvailablePage.tsx","../../src/components/PageComponents/WavelengthSideBar.tsx","../../src/components/PageComponents/WavelengthSpinningLogo.tsx","../../src/components/PageComponents/WavelengthSpinningLogoComponent.tsx","../../src/components/PageComponents/WavelengthDragAndDrop.tsx","../../src/components/PageComponents/WavelengthProgressBar.tsx","../../src/components/PageComponents/WavelengthCommentDisplay.tsx","../../src/components/PageComponents/WavelengthPermissionAlert.tsx","../../src/components/PageComponents/WavelengthAccessAlert.tsx","../../src/components/PageComponents/WavelengthAlert.tsx","../../src/components/footers/WavelengthFooter/WavelengthFooter.tsx","../../src/components/forms/WavelengthForm.tsx","../../src/components/headers/WavelengthTitleBar/WavelengthTitleBar.tsx","../../src/components/headers/WavelengthTitleBar/WavelengthBanner.tsx","../../src/components/logos/default/WavelengthDefaultIcon.tsx","../../src/components/CSFD/WavelengthManyPlanes.tsx","../../src/components/separators/WavelengthPlaneTrail/WavelengthPlaneTrail.tsx","../../src/components/modals/WavelengthConfirmationModal.tsx","../../src/components/modals/WavelengthContentModal.tsx","../../src/components/modals/WavelengthPopUpMenu.tsx","../../src/components/modals/WavelengthDropdown.tsx","../../src/components/snackbars/WavelengthSnackbar.tsx","../../src/components/snackbars/WavelengthStandardSnackbar.tsx","../../src/components/snackbars/WavelengthTestSnackbar.tsx","../../src/components/sliders/WavelengthSlider.tsx","../../src/components/carousels/WavelengthDefaultCarousel.tsx","../../src/components/carousels/WavelengthSliderCarousel.tsx","../../src/components/pagination/WavelengthDefaultPagination.tsx","../../src/components/pagination/WavelengthButtonPagination.tsx","../../src/components/pagination/WavelengthVariationPagination.tsx","../../src/components/TextField/WavelengthInput.tsx","../../src/components/DataTable/WavelengthDataTable.tsx","../../src/components/DataTable/SubRowTable/ChildSubTable.tsx","../../src/components/DataTable/NestedDataTable/NestedDataTable.tsx","../../src/components/AutoComplete/WlAutoComplete.tsx","../../src/components/inputs/WavelengthInputDatePicketer.tsx","../../src/web-components/input-datepicker.ts","../../src/components/inputs/WLDatePicker.tsx","../../src/components/samples/SampleComponent.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n};\nexports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n case REACT_VIEW_TRANSITION_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_VIEW_TRANSITION_TYPE = Symbol.for(\"react.view_transition\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","// Create reusable HTML + styles via the <template> below\nconst template = document.createElement(\"template\");\ntemplate.innerHTML = `\n <style>\n :host {\n display: block;\n /* Define component defaults here */\n }\n </style>\n <div class=\"content\">\n <slot></slot> <!-- Enables user-defined inner HTML -->\n </div>\n`;\n\n// Define a custom HTML element\nexport class SampleComponent extends HTMLElement {\n // List of attributes to observe for changes\n static get observedAttributes() {\n return [\"test-prop\"]; // <-- Add more observed attributes as needed\n }\n\n private shadow: ShadowRoot;\n\n constructor() {\n super();\n // Attach Shadow DOM for style encapsulation, and then append your template to it here\n this.shadow = this.attachShadow({ mode: \"open\" });\n this.shadow.append(template.content.cloneNode(true));\n }\n\n // Called when component is inserted into the DOM\n connectedCallback() {\n this.updateComponent();\n }\n\n // Called when observed attributes change\n attributeChangedCallback() {\n this.updateComponent();\n }\n\n // Main update logic; Your component's functionality will go here and/or in other methods that you have below\n updateComponent() {\n const prop = this.getAttribute(\"test-prop\") || \"\";\n\n // Example DOM update (replace with your component logic)\n const container = this.shadow.querySelector(\".content\");\n if (container) container.textContent = prop;\n\n //////////////////////////////////////////////////////////////////\n // TODO: Add more logic here for additional props/styles/events //\n //////////////////////////////////////////////////////////////////\n }\n}\n\n// Register your tag name here; if statement is just a sanity check, but is otherwise not needed\nif (!customElements.get(\"sample-component\")) {\n customElements.define(\"sample-component\", SampleComponent);\n}\n","export class WavelengthBanner extends HTMLElement {\n static get observedAttributes() {\n return [\"banner-text\", \"banner-color\", \"text-color\", \"opacity\", \"z-index\", \"id\", \"classification\", \"control\"];\n }\n\n private container: HTMLDivElement;\n private textElement: HTMLParagraphElement;\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: \"open\" });\n\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: block;\n width: 100%;\n }\n\n .banner {\n width: 100%;\n text-align: center;\n font-weight: normal;\n font-family: sans-serif;\n font-size: 1rem;\n }\n\n p {\n margin: 0;\n }\n `;\n\n this.container = document.createElement(\"div\");\n this.container.classList.add(\"banner\");\n\n this.textElement = document.createElement(\"p\");\n this.container.appendChild(this.textElement);\n\n shadow.appendChild(style);\n shadow.appendChild(this.container);\n }\n\n connectedCallback() {\n this.updateAttributes();\n }\n\n attributeChangedCallback() {\n this.updateAttributes();\n }\n\n private updateAttributes() {\n const classificationRaw = this.getAttribute(\"classification\")?.toLowerCase() || \"\";\n const controlRaw = this.getAttribute(\"control\") || \"\";\n const controlList = controlRaw\n .split(\",\")\n .map((s) => s.trim().toLowerCase())\n .filter(Boolean);\n\n let bannerText = this.getAttribute(\"banner-text\");\n const bannerColor = this.getAttribute(\"banner-color\");\n const textColor = this.getAttribute(\"text-color\");\n\n const palette = {\n primary: \"#4373aa\",\n secondary: \"#ffffff\",\n };\n\n let effectiveClassification = classificationRaw;\n let effectiveColor = palette.primary;\n let effectiveTextColor = palette.secondary;\n\n switch (classificationRaw) {\n case \"unclassified\":\n case \"u\":\n if (controlRaw) {\n effectiveColor = \"#502b85\";\n effectiveTextColor = \"white\";\n } else {\n effectiveColor = \"#007a33\";\n effectiveTextColor = \"white\";\n }\n break;\n case \"controlled\":\n case \"controlled unclassified information\":\n case \"cui\":\n effectiveColor = \"#502b85\";\n effectiveTextColor = \"white\";\n break;\n case \"confidential\":\n case \"c\":\n effectiveColor = \"#0033a0\";\n effectiveTextColor = \"white\";\n break;\n case \"secret\":\n case \"s\":\n effectiveColor = \"#c8102e\";\n effectiveTextColor = \"white\";\n break;\n case \"top secret\":\n case \"ts\":\n if (controlList.includes(\"sci\")) {\n effectiveColor = \"#fce83a\";\n effectiveTextColor = \"black\";\n } else {\n effectiveColor = \"#ff8c00\";\n effectiveTextColor = \"black\";\n }\n break;\n case \"\":\n effectiveClassification = \"CLASSIFICATION//CONTROL\";\n break;\n default:\n effectiveColor = palette.primary;\n effectiveTextColor = palette.secondary;\n }\n\n if (!bannerText) {\n if (controlList.length === 0) {\n bannerText = effectiveClassification;\n } else {\n bannerText = `${effectiveClassification}//${controlList.join(\"/\")}`;\n }\n }\n\n this.container.style.backgroundColor = bannerColor || effectiveColor;\n this.textElement.style.color = textColor || effectiveTextColor;\n\n this.container.style.opacity = this.getAttribute(\"opacity\") || \"1\";\n this.container.style.zIndex = this.getAttribute(\"z-index\") || \"10\";\n if (this.getAttribute(\"id\")) this.container.id = this.getAttribute(\"id\")!;\n\n this.textElement.textContent = bannerText.toUpperCase();\n }\n}\n\nif (!customElements.get(\"wavelength-banner\")) {\n customElements.define(\"wavelength-banner\", WavelengthBanner);\n}\n","const buttonTemplate = document.createElement(\"template\");\nbuttonTemplate.innerHTML = `\n <style>\n\t:host {\n \tdisplay: inline-flex;\n\t}\n\n\tbutton {\n \tdisplay: inline-flex;\n \talign-items: center;\n \tjustify-content: center;\n \tposition: relative;\n \toverflow: hidden;\n \tborder: none;\n \tborder-radius: 0.25rem;\n \tcursor: pointer;\n \tfont-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n \tfont-weight: 500;\n \tfont-size: 0.875rem;\n \tletter-spacing: 0.02857rem;\n \ttext-transform: uppercase;\n \tuser-select: none;\n \twhite-space: normal;\n \tword-break: break-word;\n \ttext-align: center;\n \theight: auto;\n\t}\n\n\tbutton .ripple {\n \tposition: absolute;\n \tborder-radius: 50%;\n \ttransform: scale(0);\n \tanimation: ripple 600ms linear;\n \tpointer-events: none;\n \tz-index: 0;\n\t}\n\n\tbutton .label {\n \tposition: relative;\n \tz-index: 1;\n \tdisplay: block;\n \twidth: 100%;\n\t}\n\n\t@keyframes ripple {\n \tto {\n \ttransform: scale(4);\n \topacity: 0;\n \t}\n\t}\n\n\tbutton.contained {\n \tbox-shadow: 0rem 0.125rem 0.25rem -0.063rem #000000;\n\t}\n\n\tbutton.contained:hover,\n\tbutton.outlined:hover,\n\tbutton.text:hover {\n \topacity: 0.96;\n \ttransition: background-color 300ms ease-in-out;\n\t}\n\n\tbutton:disabled {\n \topacity: 0.5;\n \tpointer-events: none;\n\t}\n </style>\n\n <button>\n\t<span class=\"label\"><slot>LABEL</slot></span>\n </button>\n`;\n\nexport class WavelengthButton extends HTMLElement {\n static get observedAttributes() {\n return [\"variant\", \"size\", \"margin\", \"padding\", \"color-one\", \"color-two\", \"font-size\", \"disabled\", \"border-radius\", \"href\", \"width\", \"height\", \"box-shadow\", \"target\"];\n }\n\n private button: HTMLButtonElement;\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: \"open\" });\n shadow.appendChild(buttonTemplate.content.cloneNode(true));\n this.button = shadow.querySelector(\"button\")!;\n this.button.addEventListener(\"click\", (event) => {\n if (this.button.disabled || this.hasAttribute(\"disabled\")) {\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n\n this.handleRipple(event);\n });\n }\n\n connectedCallback() {\n this.updateButton();\n }\n\n attributeChangedCallback() {\n this.updateButton();\n }\n\n updateButton() {\n const variant = this.getAttribute(\"variant\") || \"outlined\";\n const size = this.getAttribute(\"size\") || \"medium\";\n const margin = this.getAttribute(\"margin\") || \"0rem\";\n const padding = this.getAttribute(\"padding\");\n const colorOne = this.getAttribute(\"color-one\") || \"#1976D2\";\n const colorTwo = this.getAttribute(\"color-two\") || \"#FFFFFF\";\n const fontSize = this.getAttribute(\"font-size\") || \"0.875rem\";\n const disabled = this.hasAttribute(\"disabled\");\n const borderRadius = this.getAttribute(\"border-radius\") || \"0.25rem\";\n const boxShadow = this.getAttribute(\"box-shadow\");\n const href = this.getAttribute(\"href\");\n const target = this.getAttribute(\"target\") || \"_blank\";\n const width = this.getAttribute(\"width\");\n const height = this.getAttribute(\"height\") || \"auto\";\n\n this.button.className = variant;\n this.button.style.margin = margin;\n this.button.style.borderRadius = borderRadius;\n this.button.style.fontSize = fontSize;\n this.button.style.minWidth = \"\";\n this.button.disabled = disabled;\n\n if (this.hasAttribute(\"padding\") && padding && padding.trim() !== \"\") {\n this.button.style.padding = padding;\n } else {\n this.applyPresetSize(size);\n }\n\n if (width) this.button.style.width = width;\n this.button.style.height = height;\n\n if (variant === \"contained\") {\n this.button.style.backgroundColor = colorOne;\n this.button.style.color = colorTwo;\n this.button.style.border = `0.063rem solid ${colorOne}`;\n this.button.style.boxShadow = boxShadow || \"0rem 0.125rem 0.25rem -0.063rem #000000\";\n } else if (variant === \"outlined\") {\n this.button.style.backgroundColor = \"transparent\";\n this.button.style.color = colorOne;\n this.button.style.border = `0.063rem solid ${colorOne}`;\n this.button.style.boxShadow = boxShadow || \"none\";\n } else {\n this.button.style.backgroundColor = \"transparent\";\n this.button.style.color = colorOne;\n this.button.style.border = \"none\";\n this.button.style.boxShadow = boxShadow || \"none\";\n }\n\n if (href && !disabled) {\n this.button.onclick = () => window.open(href, target);\n this.button.style.cursor = \"pointer\";\n } else {\n this.button.onclick = null;\n }\n\n this.button.removeEventListener(\"mouseenter\", this.handleHoverIn);\n this.button.removeEventListener(\"mouseleave\", this.handleHoverOut);\n\n this.handleHoverIn = () => {\n if (variant === \"contained\") {\n this.button.style.backgroundColor = this.shadeColor(colorOne, -15);\n } else {\n this.button.style.backgroundColor = this.hexToRgba(colorOne, 0.05);\n }\n };\n\n this.handleHoverOut = () => {\n if (variant === \"contained\") {\n this.button.style.backgroundColor = colorOne;\n } else {\n this.button.style.backgroundColor = \"transparent\";\n }\n };\n\n this.button.addEventListener(\"mouseenter\", this.handleHoverIn);\n this.button.addEventListener(\"mouseleave\", this.handleHoverOut);\n }\n\n private applyPresetSize(size: string) {\n if (size === \"small\") {\n this.button.style.padding = \"0.5rem\";\n } else if (size === \"medium\") {\n this.button.style.padding = \"0.6875rem 0.75rem\";\n } else if (size === \"large\") {\n this.button.style.padding = \"0.875rem 1rem\";\n }\n }\n\n private handleHoverIn = () => {};\n private handleHoverOut = () => {};\n\n private hexToRgba(hex: string, alpha: number) {\n let r = 0,\n g = 0,\n b = 0;\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex[1] + hex[2], 16);\n g = parseInt(hex[3] + hex[4], 16);\n b = parseInt(hex[5] + hex[6], 16);\n }\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n\n private shadeColor(hex: string, percent: number) {\n let R = parseInt(hex.substring(1, 3), 16);\n let G = parseInt(hex.substring(3, 5), 16);\n let B = parseInt(hex.substring(5, 7), 16);\n\n R = Math.min(255, Math.max(0, R + (R * percent) / 100));\n G = Math.min(255, Math.max(0, G + (G * percent) / 100));\n B = Math.min(255, Math.max(0, B + (B * percent) / 100));\n\n const toHex = (c: number) => {\n const hex = Math.round(c).toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n };\n\n return `#${toHex(R)}${toHex(G)}${toHex(B)}`;\n }\n\n private handleRipple(event: MouseEvent) {\n if (this.button.disabled) return;\n\n const variant = this.getAttribute(\"variant\") || \"outlined\";\n const colorOne = this.getAttribute(\"color-one\") || \"#1976D2\";\n\n const ripple = document.createElement(\"span\");\n ripple.className = \"ripple\";\n\n const color = variant === \"contained\" ? this.hexToRgba(this.shadeColor(colorOne, 40), 0.6) : this.hexToRgba(this.shadeColor(colorOne, -40), 0.3);\n\n ripple.style.backgroundColor = color;\n\n const rect = this.button.getBoundingClientRect();\n const size = Math.max(rect.width, rect.height);\n ripple.style.width = ripple.style.height = `${size}px`;\n ripple.style.left = `${event.clientX - rect.left - size / 2}px`;\n ripple.style.top = `${event.clientY - rect.top - size / 2}px`;\n\n this.button.appendChild(ripple);\n setTimeout(() => ripple.remove(), 600);\n }\n}\n\nif (!customElements.get(\"wavelength-button\")) {\n customElements.define(\"wavelength-button\", WavelengthButton);\n}\n","// src/form/zodToFields.ts\nimport { ZodObject, ZodRawShape, ZodTypeAny } from \"zod\";\nimport { FieldDef } from \"../types/fields\";\n\ntype Shape = ZodRawShape;\n\nfunction camelToPascalLabel(name: string): string {\n return name\n .replace(/([A-Z])/g, \" $1\")\n .replace(/\\b\\w/g, (c) => c.toUpperCase())\n .trim();\n}\n\n/**\n * Unwrap common Zod wrappers (optional/nullable/default/effects)\n * without relying on deprecated typings. We intentionally use `any`\n * to read private fields to keep compatibility across Zod versions.\n */\nfunction unwrap(t: ZodTypeAny): ZodTypeAny {\n let cur: any = t;\n // Walk through wrapper keys until reaching a primitive type. In Zod v4 the\n // `_def.type` for primitives is a string (e.g. \"string\"), so only unwrap when\n // these keys point to another Zod type object.\n while (cur && cur._def) {\n const next = cur._def.innerType || cur._def.schema || cur._def.type;\n if (next && typeof next === \"object\") {\n cur = next;\n } else {\n break;\n }\n }\n return cur as ZodTypeAny;\n}\n\n/**\n * Robust-ish check for Zod primitives without relying on deprecated enums or instanceof.\n * Falls back to constructor name if typeName is unavailable.\n */\nfunction isZodType(core: ZodTypeAny, type: string): boolean {\n const anyCore: any = core;\n const typeName = anyCore?._def?.typeName;\n if (typeof typeName === \"string\" && typeName === type) return true;\n const ctorName = anyCore?.constructor?.name;\n return ctorName === type;\n}\n\n/**\n * Convert a Zod object schema into a list of basic field definitions.\n */\nexport function zodToFields(schema: ZodObject<Shape>): FieldDef[] {\n const fields: FieldDef[] = [];\n const shape = (schema as any).shape as Record<string, ZodTypeAny>; // tolerate Zod typing drift\n\n for (const [name, zt] of Object.entries(shape)) {\n const core = unwrap(zt);\n let type: FieldDef[\"type\"] | undefined;\n\n if (isZodType(core, \"ZodString\")) type = \"text\";\n else if (isZodType(core, \"ZodNumber\")) type = \"number\";\n else if (isZodType(core, \"ZodBoolean\")) type = \"checkbox\";\n\n if (type) {\n const anyZt: any = zt;\n const field: FieldDef = {\n name,\n label: camelToPascalLabel(name),\n type,\n required: typeof anyZt.isOptional === \"function\" ? !anyZt.isOptional() : true,\n };\n\n const placeholder =\n (typeof anyZt.meta === \"function\" ? anyZt.meta()?.placeholder : undefined) ??\n anyZt?.description ??\n anyZt?._def?.description ??\n (typeof (core as any).meta === \"function\" ? (core as any).meta()?.placeholder : undefined) ??\n (core as any)?.description ??\n (core as any)?._def?.description ??\n field.label;\n field.placeholder = placeholder;\n\n if (type === \"text\") {\n const checks: any[] = (core as any)?._def?.checks ?? [];\n for (const chk of checks) {\n const kind = chk.kind || chk._zod?.def?.check;\n const min = chk.value ?? chk._zod?.def?.minimum;\n const max = chk.value ?? chk._zod?.def?.maximum;\n if ((kind === \"min\" || kind === \"min_length\") && typeof min === \"number\") {\n field.minLength = min;\n }\n if ((kind === \"max\" || kind === \"max_length\") && typeof max === \"number\") {\n field.maxLength = max;\n }\n }\n }\n\n fields.push(field);\n }\n }\n\n return fields;\n}\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepString = step.toString();\n let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n const match = stepString.match(/\\d?e-(\\d?)/);\n if (match?.[1]) {\n stepDecCount = Number.parseInt(match[1]);\n }\n }\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\"Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: schema._zod.def.checks,\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: [], // delete existing checks\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { direction: \"backward\" }) : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 1,\n patch: 5,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n // const handleChecksResult = (\n // checkResult: ParsePayload,\n // originalResult: ParsePayload,\n // ctx: ParseContextInternal\n // ): util.MaybeAsync<ParsePayload> => {\n // // if the checks mutated the value && there are no issues, re-parse the result\n // if (checkResult.value !== originalResult.value && !checkResult.issues.length)\n // return inst._zod.parse(checkResult, ctx);\n // return originalResult;\n // };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (result.value === undefined) {\n if (key in input) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape[k]._zod.traits.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n // iterate over input keys\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n }\n else {\n handlePropertyResult(r, payload, key, input);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const single = def.options.length === 1;\n const first = def.options[0]._zod.run;\n inst._zod.parse = (payload, ctx) => {\n if (single) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (result.issues.length && input === undefined) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, payload.value));\n return handleOptionalResult(result, payload.value);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // let _innerType!: any;\n // util.defineLazy(def, \"getter\", () => {\n // if (!_innerType) {\n // _innerType = def.getter();\n // }\n // return () => _innerType;\n // });\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new Map();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new Map();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _superRefine(fn) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // encoding/decoding\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: /^https?$/,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.safeExtend = (incoming) => {\n return util.safeExtend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", shape ? util.objectClone(shape) : {});\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", util.objectClone(shape));\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", util.objectClone(shape));\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","import { ZodObject, ZodRawShape, ZodSchema } from \"zod\";\n\nimport { ValidationResult } from \"../types/validationResult\";\n\n/**\n * Generic Validator that wraps any Zod schema of an object type T.\n */\nexport class Validator<T extends object> {\n constructor(private readonly schema: ZodSchema<T>) {}\n\n /**\n * Validate the entire object payload.\n */\n validate(payload: unknown): ValidationResult<T> {\n const parsed = this.schema.safeParse(payload);\n if (parsed.success) {\n return { isValid: true, value: parsed.data };\n }\n return { isValid: false, issues: parsed.error.issues };\n }\n\n /**\n * Validate only the fields present in `payload`.\n * Returns success if all provided keys pass their individual checks.\n */\n validatePartial(payload: Partial<T>): ValidationResult<Partial<T>> {\n if (!(this.schema instanceof ZodObject)) {\n throw new Error(\"Partial validation requires a ZodObject schema\");\n }\n\n // Create a version with every key optional\n const partialSchema = (this.schema as ZodObject<ZodRawShape>).strict().partial();\n\n const parsed = partialSchema.safeParse(payload);\n if (parsed.success) {\n return { isValid: true, value: parsed.data as Partial<T> };\n } else {\n return { isValid: false, issues: parsed.error.issues };\n }\n }\n\n /**\n * Validate a single property by key and value.\n * Requires the schema to be a ZodObject.\n */\n validateProperty<K extends keyof T>(key: K, value: unknown): ValidationResult<Partial<T>> {\n return this.validatePartial({ [key]: value } as Partial<T>);\n }\n}\n","import { ZodObject, ZodRawShape, ZodIssue } from \"zod\";\nimport { zodToFields } from \"../form/zodToFields\";\nimport { FieldDef, FormValue } from \"../types/fields\";\nimport { Validator } from \"../form/validator\"; // file 4 will re-export your existing Validator\n\ntype Shape = ZodRawShape;\n\ntype ButtonConfig = {\n label?: string;\n buttonProps?: Record<string, any>;\n eventName?: string;\n};\n\nexport class WavelengthForm<T extends object> extends HTMLElement {\n private _schema?: ZodObject<Shape>;\n private _validator?: Validator<T>;\n private _shadow: ShadowRoot;\n private _fields: FieldDef[] = [];\n private _value: FormValue = {};\n private _errors: Record<string, string> = {};\n private _leftButton?: ButtonConfig;\n private _centerButton?: ButtonConfig;\n private _rightButton?: ButtonConfig;\n private _inputProps: Record<string, any> = {};\n private _idPrefix = \"\";\n private _title = \"\";\n private _titleAlign: string = \"left\";\n private _titleColor = \"\";\n private _formWidth: string = \"300px\";\n private _layout?: number[];\n\n static get observedAttributes() {\n // schema is a property, not an attribute\n return [\"id-prefix\", \"title\", \"title-align\", \"title-color\", \"form-width\"];\n }\n\n constructor() {\n super();\n this._shadow = this.attachShadow({ mode: \"open\" });\n }\n\n // --- Public API ---\n\n /**\n * Assign a Zod object schema to render. (required)\n */\n set schema(s: ZodObject<Shape> | undefined) {\n this._schema = s;\n this._validator = s ? new Validator<T>(s as unknown as any) : undefined;\n this._fields = s ? zodToFields(s) : [];\n // reset errors when schema changes\n this._errors = {};\n this.render();\n }\n get schema(): ZodObject<Shape> | undefined {\n return this._schema;\n }\n\n /**\n * Optional initial values. You can also set individual values\n * by dispatching inputChange from your inputs after mount.\n */\n set value(v: FormValue | undefined) {\n this._value = v ?? {};\n this.render();\n }\n get value(): FormValue {\n return this.collectValues();\n }\n\n set leftButton(v: ButtonConfig | undefined) {\n this._leftButton = v;\n this.render();\n }\n get leftButton(): ButtonConfig | undefined {\n return this._leftButton;\n }\n\n set centerButton(v: ButtonConfig | undefined) {\n this._centerButton = v;\n this.render();\n }\n get centerButton(): ButtonConfig | undefined {\n return this._centerButton;\n }\n\n set rightButton(v: ButtonConfig | undefined) {\n this._rightButton = v;\n this.render();\n }\n get rightButton(): ButtonConfig | undefined {\n return this._rightButton;\n }\n\n set inputProps(v: Record<string, any> | undefined) {\n this._inputProps = v ?? {};\n this.render();\n }\n get inputProps(): Record<string, any> | undefined {\n return this._inputProps;\n }\n\n set idPrefix(v: string | undefined) {\n this._idPrefix = v ?? \"\";\n this.render();\n }\n get idPrefix(): string | undefined {\n return this._idPrefix || undefined;\n }\n\n /** Heading text displayed above the form */\n set title(v: string) {\n this._title = v ?? \"\";\n if (v === \"\") {\n this.removeAttribute(\"title\");\n } else {\n this.setAttribute(\"title\", v);\n }\n this.render();\n }\n get title(): string {\n return this._title;\n }\n\n /** CSS text-align value applied to the heading */\n set titleAlign(v: string | undefined) {\n this._titleAlign = v ?? \"left\";\n this.setAttribute(\"title-align\", this._titleAlign);\n this.render();\n }\n get titleAlign(): string {\n return this._titleAlign;\n }\n\n /** Color applied to the heading text */\n set titleColor(v: string | undefined) {\n this._titleColor = v ?? \"\";\n if (v === undefined) {\n this.removeAttribute(\"title-color\");\n } else {\n this.setAttribute(\"title-color\", this._titleColor);\n }\n this.render();\n }\n get titleColor(): string | undefined {\n return this._titleColor || undefined;\n }\n\n /** Width applied to the form element */\n set formWidth(v: string | undefined) {\n this._formWidth = v ?? \"300px\";\n if (v === undefined) {\n this.removeAttribute(\"form-width\");\n } else {\n this.setAttribute(\"form-width\", this._formWidth);\n }\n this.render();\n }\n get formWidth(): string {\n return this._formWidth;\n }\n\n /** Array describing how many fields appear in each row */\n set layout(v: number[] | undefined) {\n this._layout = v;\n this.render();\n }\n get layout(): number[] | undefined {\n return this._layout;\n }\n\n /**\n * Imperative validation without submitting.\n * Returns true if the current form values are valid.\n */\n public validate(): boolean {\n return this.validateAll().isValid;\n }\n\n connectedCallback() {\n this.render();\n }\n\n attributeChangedCallback(name: string, _old: string | null, value: string | null) {\n if (name === \"id-prefix\") {\n this._idPrefix = value ?? \"\";\n this.render();\n } else if (name === \"title\") {\n this._title = value ?? \"\";\n this.render();\n } else if (name === \"title-align\") {\n this._titleAlign = value ?? \"left\";\n this.render();\n } else if (name === \"title-color\") {\n this._titleColor = value ?? \"\";\n this.render();\n } else if (name === \"form-width\") {\n this._formWidth = value ?? \"300px\";\n if (value === null) {\n this.removeAttribute(\"form-width\");\n }\n this.render();\n }\n }\n\n // --- Internal helpers ---\n\n private collectValues(): FormValue {\n const next: FormValue = {};\n for (const f of this._fields) {\n const el = this.queryFieldEl(f.name);\n if (!el) continue;\n\n if (f.type === \"checkbox\") {\n next[f.name] = (el as HTMLInputElement).checked;\n } else if (f.type === \"number\") {\n const val = (el as any).value ?? \"\";\n next[f.name] = val === \"\" ? undefined : Number(val);\n } else {\n const val = (el as any).value ?? \"\";\n next[f.name] = val;\n }\n }\n return next;\n }\n\n private queryFieldEl(name: string): HTMLElement | null {\n return this._shadow.querySelector<HTMLElement>(`[data-name=\"${name}\"]`);\n }\n\n private setFieldError(name: string, message?: string) {\n const el = this.queryFieldEl(name);\n if (!el) return;\n\n if (message) {\n const existing = this._errors[name];\n const pieces = [...(existing ? existing.split(\"\\n\") : []), ...message.split(\"\\n\")].filter((m) => m !== \"\");\n const combined = Array.from(new Set(pieces)).join(\"\\n\");\n el.setAttribute(\"error-message\", combined);\n el.setAttribute(\"force-error\", \"\");\n this._errors[name] = combined;\n } else {\n el.removeAttribute(\"force-error\");\n el.removeAttribute(\"error-message\");\n delete this._errors[name];\n }\n }\n\n private validateField(name: string, value: unknown) {\n if (!this._validator) return;\n const res = this._validator.validateProperty(name as keyof T, value);\n if (res.isValid) {\n this.setFieldError(name, undefined);\n } else {\n const issues = res.issues?.filter((i) => (i.path?.[0] as string) === name) ?? [];\n const messages = issues.map((i) => i.message).join(\"\\n\");\n this.setFieldError(name, issues.length > 0 ? messages : \"Invalid value\");\n }\n }\n\n private validateAll(): { isValid: boolean; value: FormValue; issues: ZodIssue[] } {\n if (!this._validator) {\n return { isValid: true, value: this.collectValues(), issues: [] };\n }\n const values = this.collectValues();\n\n // clear all first\n for (const f of this._fields) this.setFieldError(f.name, undefined);\n\n const res = this._validator.validate(values as unknown);\n if (res.isValid) {\n return { isValid: true, value: res.value as unknown as FormValue, issues: [] };\n }\n\n for (const f of this._fields) {\n const issues = res.issues?.filter((i) => (i.path?.[0] as string) === f.name) ?? [];\n if (issues.length > 0) {\n const messages = issues.map((i) => i.message).join(\"\\n\");\n this.setFieldError(f.name, messages);\n }\n }\n return { isValid: false, value: values, issues: res.issues ?? [] };\n }\n\n // --- Event handlers ---\n\n private onInputChange = (name: string, rawValue: unknown) => {\n this._value = { ...this._value, [name]: rawValue };\n const res = this._validator?.validate(this._value as unknown);\n const issues = res && !res.isValid ? (res.issues ?? []) : [];\n this.dispatchEvent(\n new CustomEvent(\"form-change\", {\n detail: { value: { ...this._value }, issues },\n }),\n );\n };\n\n private onBlur = (name: string) => {\n const field = this._fields.find((f) => f.name === name);\n const el = this.queryFieldEl(name);\n if (!field || !el) return;\n\n let value: unknown;\n if (field.type === \"checkbox\") {\n value = (el as HTMLInputElement).checked;\n } else if (field.type === \"number\") {\n const raw = (el as any).value ?? \"\";\n value = raw === \"\" ? undefined : Number(raw);\n } else {\n value = (el as any).value ?? \"\";\n }\n this.validateField(name, value);\n };\n\n private onSubmit = (e: Event) => {\n e.preventDefault();\n const res = this.validateAll();\n const submitEvent =\n typeof SubmitEvent === \"function\" ? new SubmitEvent(\"submit\", { bubbles: true, cancelable: true, composed: true }) : new Event(\"submit\", { bubbles: true, cancelable: true, composed: true });\n this.dispatchEvent(submitEvent);\n if (res.isValid) {\n this.dispatchEvent(new CustomEvent(\"form-valid\", { detail: { value: res.value, issues: [] } }));\n } else {\n this.dispatchEvent(new CustomEvent(\"form-invalid\", { detail: { value: res.value, issues: res.issues } }));\n }\n };\n\n // --- Rendering ---\n\n private render() {\n // minimal styling — keep it simple for MVP\n const css = /*css*/ `\n :host { display: block; font: 14px/1.4 system-ui, sans-serif; }\n form { display: grid; gap: 12px; }\n .field-row { display: grid; gap: 12px; }\n .row { display: grid; gap: 6px; }\n .checkbox-row { display: flex; align-items: center; gap: 6px; }\n .actions {\n margin-top: 8px;\n display: flex;\n gap: 8px;\n }\n .actions > .left,\n .actions > .center,\n .actions > .right {\n flex: 1;\n display: flex;\n }\n .actions > .left { justify-content: flex-start; }\n .actions > .center { justify-content: center; }\n .actions > .right { justify-content: flex-end; }\n `;\n\n const form = document.createElement(\"form\");\n form.noValidate = true;\n form.addEventListener(\"submit\", this.onSubmit);\n form.style.width = this._formWidth;\n\n // determine layout rows\n const layout: number[] = this._layout && this._layout.length > 0 ? [...this._layout] : [];\n let total = layout.reduce((a, b) => a + b, 0);\n while (total < this._fields.length) {\n layout.push(1);\n total += 1;\n }\n\n let fieldIndex = 0;\n for (const cols of layout) {\n if (fieldIndex >= this._fields.length) break;\n const rowWrap = document.createElement(\"div\");\n rowWrap.className = \"field-row\";\n rowWrap.style.gridTemplateColumns = `repeat(${cols}, 1fr)`;\n\n for (let i = 0; i < cols && fieldIndex < this._fields.length; i++) {\n const f = this._fields[fieldIndex++];\n const cell = document.createElement(\"div\");\n cell.className = f.type === \"checkbox\" ? \"row checkbox-row\" : \"row\";\n const fieldId = this._idPrefix ? `${this._idPrefix}-${f.name}` : f.name;\n\n if (f.type === \"checkbox\") {\n const input = document.createElement(\"input\");\n input.type = \"checkbox\";\n input.id = fieldId;\n input.setAttribute(\"data-name\", f.name);\n input.name = fieldId;\n if (this._value[f.name] !== undefined) {\n input.checked = Boolean(this._value[f.name]);\n }\n\n input.addEventListener(\"change\", () => {\n this.onInputChange(f.name, input.checked);\n });\n input.addEventListener(\"blur\", () => this.onBlur(f.name));\n\n const label = document.createElement(\"label\");\n label.htmlFor = fieldId;\n label.textContent = f.label;\n\n cell.appendChild(input);\n cell.appendChild(label);\n } else {\n const input = document.createElement(\"wavelength-input\") as HTMLElement & {\n value: string;\n setAttribute: (k: string, v?: string) => void;\n removeAttribute: (k: string) => void;\n };\n\n if (this._inputProps) {\n for (const [key, value] of Object.entries(this._inputProps)) {\n if (value !== undefined) input.setAttribute(key, String(value));\n }\n }\n\n input.setAttribute(\"data-name\", f.name);\n input.setAttribute(\"name\", fieldId);\n if (f.placeholder !== undefined) {\n input.setAttribute(\"placeholder\", f.placeholder);\n input.setAttribute(\"label\", f.placeholder);\n } else {\n input.setAttribute(\"label\", f.label);\n }\n input.setAttribute(\"validation-type\", \"manual\"); // form drives error visuals\n input.setAttribute(\"id\", fieldId);\n if (f.type === \"number\") {\n input.setAttribute(\"input-type\", \"number\");\n }\n if (f.required) {\n input.setAttribute(\"required\", \"\");\n }\n if (f.minLength !== undefined) {\n input.setAttribute(\"min-length\", String(f.minLength));\n }\n if (f.maxLength !== undefined) {\n input.setAttribute(\"max-length\", String(f.maxLength));\n }\n if (this._value[f.name] !== null && this._value[f.name] !== undefined) {\n input.value = String(this._value[f.name]);\n }\n\n // bridge events\n input.addEventListener(\"inputChange\", ((e: Event) => {\n const detail = (e as CustomEvent).detail ?? {};\n let val: unknown = detail.value ?? \"\";\n if (f.type === \"number\") {\n val = val === \"\" ? \"\" : Number(val);\n }\n this.onInputChange(f.name, val);\n }) as EventListener);\n\n input.addEventListener(\"blur\", (() => this.onBlur(f.name)) as EventListener);\n\n cell.appendChild(input);\n }\n\n rowWrap.appendChild(cell);\n }\n\n form.appendChild(rowWrap);\n }\n\n const actions = document.createElement(\"div\");\n actions.className = \"actions\";\n\n const leftSlot = document.createElement(\"div\");\n leftSlot.className = \"left\";\n const centerSlot = document.createElement(\"div\");\n centerSlot.className = \"center\";\n const rightSlot = document.createElement(\"div\");\n rightSlot.className = \"right\";\n\n const buildButton = (cfg: ButtonConfig, defaultEvent: string) => {\n const btn = document.createElement(\"wavelength-button\");\n const requestedType = (cfg.buttonProps?.type as string) ?? \"\";\n const type = requestedType === \"submit\" ? \"submit\" : \"button\";\n if (cfg.buttonProps) {\n for (const [key, value] of Object.entries(cfg.buttonProps)) {\n if (key === \"type\") continue;\n if (value !== undefined) btn.setAttribute(key, String(value));\n }\n }\n btn.setAttribute(\"type\", type);\n if (cfg.label) btn.textContent = cfg.label;\n btn.addEventListener(\"click\", (e) => {\n const ev = cfg.eventName ?? defaultEvent;\n if (requestedType === \"submit\") {\n form.requestSubmit();\n } else {\n e.preventDefault();\n }\n this.dispatchEvent(new CustomEvent(ev));\n });\n return btn;\n };\n\n if (this._leftButton) {\n leftSlot.appendChild(buildButton(this._leftButton, \"form-left\"));\n }\n\n if (this._centerButton) {\n centerSlot.appendChild(buildButton(this._centerButton, \"form-center\"));\n }\n\n if (this._rightButton) {\n rightSlot.appendChild(buildButton(this._rightButton, \"form-right\"));\n }\n\n if (leftSlot.children.length + centerSlot.children.length + rightSlot.children.length > 0) {\n actions.append(leftSlot, centerSlot, rightSlot);\n form.appendChild(actions);\n }\n\n // mount\n this._shadow.innerHTML = `<style>${css}</style>`;\n if (this._title) {\n const heading = document.createElement(\"h2\");\n heading.textContent = this._title;\n heading.style.textAlign = this._titleAlign;\n if (this._titleColor) {\n heading.style.color = this._titleColor;\n }\n heading.style.userSelect = \"none\";\n heading.style.setProperty(\"-webkit-user-select\", \"none\");\n this._shadow.appendChild(heading);\n }\n this._shadow.appendChild(form);\n\n // reapply existing error state if any (e.g., after re-render)\n for (const [name, msg] of Object.entries(this._errors)) {\n this.setFieldError(name, msg);\n }\n }\n}\n\nif (!customElements.get(\"wavelength-form\")) {\n customElements.define(\"wavelength-form\", WavelengthForm);\n}\n","const template = document.createElement(\"template\");\ntemplate.innerHTML = `\n <style>\n\t.label {\n \tdisplay: flex;\n \tjustify-content: space-between;\n \tfont-family: Arial, sans-serif;\n \tmargin-bottom: 6px;\n\t}\n\t.progress-bar {\n \tbackground-color: #e0e0e0;\n \tborder: 1px solid black;\n \tborder-radius: 12px;\n \toverflow: hidden;\n \tposition: relative;\n\t}\n\t.progress-fill {\n \tbackground-color: #1976d2;\n \theight: 100%;\n \ttransition: width 0.3s ease-in-out;\n \tborder-right: 1px solid black;\n\t}\n </style>\n <div class=\"container\">\n\t<div class=\"label\">\n \t<span class=\"name\"></span>\n \t<span class=\"status\"></span>\n\t</div>\n\t<div class=\"progress-bar\">\n \t<div class=\"progress-fill\"></div>\n\t</div>\n </div>\n`;\n\nexport class WavelengthProgressBar extends HTMLElement {\n static get observedAttributes() {\n return [\"value\", \"width\", \"height\", \"font-size\", \"font-color\", \"progress-border\", \"progress-color\", \"name\"];\n }\n\n private container!: HTMLDivElement;\n private nameSpan!: HTMLSpanElement;\n private statusSpan!: HTMLSpanElement;\n private progressBar!: HTMLDivElement;\n private progressFill!: HTMLDivElement;\n\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: \"open\" });\n shadow.appendChild(template.content.cloneNode(true));\n\n this.container = shadow.querySelector(\".container\")!;\n this.nameSpan = shadow.querySelector(\".name\")!;\n this.statusSpan = shadow.querySelector(\".status\")!;\n this.progressBar = shadow.querySelector(\".progress-bar\")!;\n this.progressFill = shadow.querySelector(\".progress-fill\")!;\n }\n\n connectedCallback() {\n this.updateRendering();\n }\n\n attributeChangedCallback() {\n this.updateRendering();\n }\n\n private updateRendering() {\n const value = Number(this.getAttribute(\"value\") ?? \"0\");\n const width = this.getAttribute(\"width\") ?? \"425px\";\n const height = this.getAttribute(\"height\") ?? \"12px\";\n const fontSize = this.getAttribute(\"font-size\") ?? \"inherit\";\n const fontColor = this.getAttribute(\"font-color\") ?? \"#000000\";\n const progressBorder = this.getAttribute(\"progress-border\") ?? \"10px solid black\";\n const progressColor = this.getAttribute(\"progress-color\") ?? \"#1976d2\";\n const name = this.getAttribute(\"name\") ?? \"\";\n\n this.container.style.width = width;\n this.progressBar.style.width = width;\n this.progressBar.style.height = height;\n this.progressBar.style.border = progressBorder;\n this.progressFill.style.width = `${Math.min(value, 100)}%`;\n this.progressFill.style.backgroundColor = progressColor;\n\n this.nameSpan.textContent = name;\n this.statusSpan.textContent = value === 100 ? `Complete! - ${value}%` : `Uploading - ${value}%`;\n\n this.nameSpan.style.fontSize = fontSize;\n this.nameSpan.style.color = fontColor;\n this.statusSpan.style.fontSize = fontSize;\n this.statusSpan.style.color = fontColor;\n }\n}\n\ncustomElements.define(\"wavelength-progress-bar\", WavelengthProgressBar);\n","const template = document.createElement(\"template\");\ntemplate.innerHTML = `\n<style>\n :host {\n display: block;\n width: 100%;\n font-family: sans-serif;\n --wavelength-container-background: #f8f8f8;\n --wavelength-label-background: #ffffff;\n }\n\n .field-wrapper { \n position: relative; \n } \n\n .floating-label { \n position: absolute; \n top: -0.325rem; \n left: 12px; \n font-size: 0.75rem; \n line-height: 1; \n color: var(--wavelength-label-color, #666666); \n padding: 0 4px; \n z-index: 1; \n pointer-events: none; \n user-select: none; \n } \n\n .floating-label::before, \n .floating-label::after { \n content: ''; \n position: absolute; \n left: 0; \n width: 100%; \n z-index: -1; \n } \n\n .floating-label::before { \n top: 0; \n height: 50%; \n background: var(--wavelength-container-background, white); \n } \n\n .floating-label::after { \n bottom: 0; \n height: 50%; \n background: var(--wavelength-label-background, #ffffff); \n } \n\n :host([disabled]) .floating-label::before { \n opacity: 0; \n } \n\n input { \n font-size: 16px; \n padding: 16.5px 14px; \n border: 1px solid var(--wavelength-border-color, #cccccc); \n border-radius: 8px; \n width: 100%; \n box-sizing: border-box; \n background-color: var(--wavelength-background, #ffffff); \n transition: border-color 0.2s ease; \n overflow: auto; \n font-family: inherit; \n } \n\n input:focus { \n outline: none; \n } \n\n input:disabled { \n opacity: 0.5; \n cursor: not-allowed; \n } \n\n :host([disabled]) .floating-label::after { \n opacity: 0; \n cursor: not-allowed; \n } \n\n input::placeholder { \n color: #999999; \n } \n\n .helper-message { \n margin-top: 4px; \n font-size: 0.75rem; \n max-width: 100%; \n word-wrap: break-word; \n white-space: normal; \n overflow-wrap: break-word; \n color: #000000;\n padding-left: 14px;\n margin-left: 2px;\n user-select: none; \n }\n\n .required-marker {\n color: red;\n font-weight: lighter;\n font-size: 0.75rem; \n }\n \n .clear-button {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n font-size: 1.25 rem;\n color: #666666;\n cursor: pointer;\n opacity: 0.5;\n user-select: none;\n transition: opacity 0.2s ease;\n z-index: 2;\n display: none;\n line-height: 1;\n padding: 0 4px;\n }\n\n .clear-button:hover {\n opacity: 1;\n }\n\n :host([disabled]) .clear-button {\n display: none;\n }\n \n</style>\n<div class=\"field-wrapper\">\n <label class=\"floating-label\" id=\"floating-label\"></label>\n <div class=\"input-wrapper\"></div>\n <div class=\"clear-button\" id=\"clear-button\" title=\"Clear input\">✕</div>\n</div>\n<div class=\"helper-message\" id=\"helper\"></div>\n`;\n\nfunction getAncestor(el: HTMLElement | null): HTMLElement | null {\n if (!el) return null;\n if (el.parentElement) {\n return el.parentElement;\n }\n const root = el.getRootNode();\n return root instanceof ShadowRoot ? (root.host as HTMLElement) : null;\n}\n\nexport class WavelengthInput extends HTMLElement {\n private inputEl: HTMLInputElement;\n private labelEl: HTMLLabelElement;\n private helperEl: HTMLDivElement;\n private clearButtonEl: HTMLDivElement;\n private placeholderStyleEl = document.createElement(\"style\");\n private isFocused = false;\n private hasBlurred = false;\n private validationType: \"none\" | \"always\" | \"onBlur\" | \"manual\" = \"none\";\n private forceError = false;\n private _bgObserver: MutationObserver | null = null;\n private _debounceValidate: () => void = () => {};\n private _debounceTimeout: number | null = null;\n private _lastErrorMessage = \"\";\n private internals: ElementInternals;\n static formAssociated = true;\n\n static get observedAttributes() {\n return [\n \"id\",\n \"name\",\n \"placeholder\",\n \"value\",\n \"clearable\",\n \"input-type\",\n \"disabled\",\n \"width\",\n \"height\",\n \"padding\",\n \"border-radius\",\n \"background-color\",\n \"label-color\",\n \"placeholder-color\",\n \"text-color\",\n \"border-color\",\n \"focus-color\",\n \"helper-color\",\n \"regex\",\n \"helper-message\",\n \"error-message\",\n \"min-length-message\",\n \"max-length-message\",\n \"validation-type\",\n \"min-length\",\n \"max-length\",\n \"required\",\n \"force-error\",\n \"label\",\n ];\n }\n\n constructor() {\n super();\n this.internals = this.attachInternals();\n const shadow = this.attachShadow({ mode: \"open\" });\n shadow.appendChild(template.content.cloneNode(true));\n this.inputEl = document.createElement(\"input\");\n this.labelEl = shadow.getElementById(\"floating-label\") as HTMLLabelElement;\n this.helperEl = shadow.getElementById(\"helper\") as HTMLDivElement;\n this.clearButtonEl = shadow.getElementById(\"clear-button\") as HTMLDivElement;\n this.clearButtonEl.addEventListener(\"click\", this._onClearClick);\n\n shadow.querySelector(\".input-wrapper\")!.appendChild(this.inputEl);\n shadow.appendChild(this.placeholderStyleEl);\n }\n\n connectedCallback() {\n [\"placeholder\", \"value\", \"input-type\", \"disabled\", \"id\", \"name\"].forEach(this._upgradeProperty.bind(this));\n this.validationType = (this.getAttribute(\"validation-type\") as typeof this.validationType) || \"none\";\n\n this.inputEl.id = this.getAttribute(\"id\") || \"\";\n this.inputEl.name = this.getAttribute(\"name\") || \"\";\n\n this._applyAttributes();\n this._setupDebouncedValidation();\n\n const maxLengthAttr = this.getAttribute(\"max-length\");\n const value = this.inputEl?.value?.trim?.() || \"\";\n\n this.inputEl.addEventListener(\"input\", this._onInput);\n this.inputEl.addEventListener(\"blur\", this._onBlur);\n this.inputEl.addEventListener(\"focus\", this._onFocus);\n\n if (this.hasAttribute(\"force-error\")) {\n this._validate(true);\n }\n\n if (this.validationType !== \"none\" && maxLengthAttr && value.length > parseInt(maxLengthAttr, 10)) {\n this._validate(true);\n }\n\n this._startBackgroundObserver();\n this._toggleClearButton();\n\n (this as any).validate = (bypass = false) => this._validate(bypass);\n }\n\n disconnectedCallback() {\n this.inputEl.removeEventListener(\"input\", this._onInput);\n this.inputEl.removeEventListener(\"blur\", this._onBlur);\n this.inputEl.removeEventListener(\"focus\", this._onFocus);\n this._stopBackgroundObserver();\n }\n\n private _startBackgroundObserver() {\n this._stopBackgroundObserver();\n\n this._bgObserver = new MutationObserver(() => {\n requestAnimationFrame(() => this._applyColors());\n });\n\n let ancestor: HTMLElement | null = getAncestor(this);\n while (ancestor && ancestor !== document.body) {\n this._bgObserver.observe(ancestor, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n ancestor = getAncestor(ancestor);\n }\n\n this._bgObserver.observe(document.body, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n }\n private _stopBackgroundObserver() {\n if (this._bgObserver) {\n this._bgObserver.disconnect();\n this._bgObserver = null;\n }\n }\n\n private _setupDebouncedValidation() {\n this._debounceValidate = () => {\n if (this._debounceTimeout !== null) {\n clearTimeout(this._debounceTimeout);\n }\n this._debounceTimeout = window.setTimeout(() => this._validate(), 200);\n };\n }\n private _onInput = () => {\n this.setAttribute(\"value\", this.inputEl.value);\n this.internals.setFormValue(this.inputEl.value);\n this.dispatchEvent(\n new CustomEvent(\"inputChange\", {\n bubbles: true,\n detail: { value: this.inputEl.value },\n }),\n );\n this._toggleClearButton();\n if (this.validationType === \"always\") this._debounceValidate();\n };\n private _onFocus = () => {\n this.isFocused = true;\n if (this._validate()) {\n this.inputEl.style.borderColor = this.getAttribute(\"focus-color\") || \"#5e9ed6\";\n }\n this.inputEl.setAttribute(\"aria-required\", this.required.toString());\n };\n\n private _onBlur = () => {\n this.isFocused = false;\n\n if (this.validationType !== \"manual\") {\n this.hasBlurred = true;\n }\n\n const shouldValidate = this.validationType === \"onBlur\" || this.validationType === \"always\";\n let isValid = true;\n if (shouldValidate) {\n isValid = this._validate();\n }\n\n const hasError = this.hasAttribute(\"data-error\") || this.hasAttribute(\"force-error\");\n if (hasError) {\n return;\n }\n\n if (shouldValidate) {\n if (isValid) {\n this.inputEl.style.borderColor = this.getAttribute(\"border-color\") || \"#cccccc\";\n }\n } else {\n this.inputEl.style.borderColor = this.getAttribute(\"border-color\") || \"#cccccc\";\n }\n };\n\n private _validate(bypassTypeCheck = false): boolean {\n const regexAttr = this.getAttribute(\"regex\");\n const errorMessage = this.getAttribute(\"error-message\");\n const minLengthMessage = this.getAttribute(\"min-length-message\");\n const maxLengthMessage = this.getAttribute(\"max-length-message\");\n const helperMessage = this.getAttribute(\"helper-message\");\n const value = this.inputEl.value.trim();\n const validationType = this.getAttribute(\"validation-type\") as \"none\" | \"always\" | \"onBlur\" | \"manual\" | null;\n const isRequired = this.required;\n const isEmpty = value === \"\";\n const minLengthAttr = this.getAttribute(\"min-length\");\n const maxLengthAttr = this.getAttribute(\"max-length\");\n\n const force = this.forceError || this.hasAttribute(\"force-error\");\n\n // Early exit if validation is off and not being overridden\n if (!bypassTypeCheck && (validationType === \"manual\" || validationType === \"none\") && !force) {\n return true;\n }\n\n const shouldValidate = bypassTypeCheck || validationType === \"always\" || (validationType === \"onBlur\" && this.hasBlurred);\n const errors = new Set<string>();\n\n if (force) {\n if (errorMessage) {\n errors.add(errorMessage);\n }\n }\n\n if (!force) {\n if (isRequired && isEmpty && shouldValidate) {\n errors.add(errorMessage ?? \"This field is required.\");\n }\n\n if (regexAttr && !isEmpty && shouldValidate) {\n try {\n const regex = new RegExp(regexAttr);\n if (!regex.test(value)) {\n errors.add(errorMessage ?? \"Input does not match the required pattern.\");\n }\n } catch (e) {\n console.warn(`[WavelengthInput] Invalid regex pattern: \"${regexAttr}\"`, e);\n errors.add(\"Invalid regex pattern.\");\n }\n }\n\n const min = parseInt(minLengthAttr ?? \"\", 10);\n if (!isNaN(min) && value.length < min && shouldValidate) {\n errors.add(minLengthMessage ?? `MINIMUM length is ${min} characters.`);\n }\n\n const max = parseInt(maxLengthAttr ?? \"\", 10);\n if (!isNaN(max) && value.length > max && shouldValidate) {\n errors.add(maxLengthMessage ?? `MAXIMUM length is ${max} characters.`);\n }\n }\n\n if (errors.size > 0) {\n const message = Array.from(errors).join(\"\\n\");\n if (message !== this._lastErrorMessage) {\n this._showError(message);\n }\n return false;\n }\n\n this._clearError(helperMessage || \"\");\n return true;\n }\n\n private _showError(message: string) {\n const htmlMessage = message.replace(/\\n/g, \"<br>\");\n if (this.helperEl.innerHTML === htmlMessage) {\n this._lastErrorMessage = message;\n return;\n }\n this.helperEl.innerHTML = htmlMessage;\n this.helperEl.classList.add(\"error\");\n this.inputEl.style.borderColor = \"red\";\n this.helperEl.style.color = \"red\";\n this.inputEl.setAttribute(\"aria-invalid\", \"true\");\n this.setAttribute(\"data-error\", \"true\");\n this._lastErrorMessage = message;\n }\n\n private _clearError(helperText: string) {\n const borderColor = this.isFocused ? this.getAttribute(\"focus-color\") || \"#5e9ed6\" : this.getAttribute(\"border-color\") || \"#cccccc\";\n const helperColor = this.getAttribute(\"helper-color\") || \"#000000\";\n\n this.helperEl.textContent = helperText;\n this.helperEl.classList.remove(\"error\");\n this.helperEl.style.color = helperColor;\n this.inputEl.style.borderColor = borderColor;\n this.inputEl.setAttribute(\"aria-invalid\", \"false\");\n this.removeAttribute(\"data-error\");\n this._applyValidationHint();\n this._lastErrorMessage = \"\";\n }\n\n private _applyAttributes() {\n this._applyContent();\n this._applyLayout();\n this._applyColors();\n this._applyValidationHint();\n this._applyAccessibility();\n\n if (this.hasAttribute(\"force-error\")) {\n this._validate(true);\n }\n }\n\n private _updateRequiredMarker() {\n const markerEl = this.labelEl.querySelector(\".required-marker\") as HTMLElement;\n const isRequired = this.required;\n\n if (markerEl) {\n markerEl.textContent = isRequired ? \"*\" : \"\";\n }\n }\n\n private _onClearClick = () => {\n if (this.disabled) return;\n this.inputEl.value = \"\";\n this.setAttribute(\"value\", \"\");\n this._toggleClearButton();\n this._validate();\n this.dispatchEvent(\n new CustomEvent(\"inputChange\", {\n bubbles: true,\n detail: { value: \"\" },\n }),\n );\n };\n\n private _toggleClearButton() {\n const isClearable = this.hasAttribute(\"clearable\");\n const hasValue = !!this.inputEl.value;\n\n if (isClearable && !this.disabled && hasValue) {\n this.clearButtonEl.style.display = \"block\";\n } else {\n this.clearButtonEl.style.display = \"none\";\n }\n }\n\n private _applyContent() {\n const label = this.getAttribute(\"label\");\n const minLength = this.getAttribute(\"min-length\");\n const maxLength = this.getAttribute(\"max-length\");\n\n if (minLength) this.inputEl.minLength = Number(minLength);\n if (maxLength) this.inputEl.maxLength = Number(maxLength);\n\n this.inputEl.placeholder = this.getAttribute(\"placeholder\") || \"\";\n this.inputEl.value = this.getAttribute(\"value\") || \"\";\n this.inputEl.type = this.getAttribute(\"input-type\") || \"text\";\n this.inputEl.disabled = this.disabled;\n\n this.labelEl.innerHTML = `\n <span class=\"label-text\">${label || \"\"}</span>\n <span class=\"required-marker\" style=\"color: red;\" aria-hidden=\"true\"></span>\n `;\n this.labelEl.style.display = label ? \"block\" : \"none\";\n\n this._updateRequiredMarker();\n }\n\n private _applyLayout() {\n const widthAttr = this.getAttribute(\"width\");\n const width = widthAttr || \"100%\";\n const rawPadding = this.getAttribute(\"padding\") || \"16.5px 14px\";\n\n const paddingParts = rawPadding.trim().split(/\\s+/);\n\n let leftPaddingPx: number;\n switch (paddingParts.length) {\n case 1: // padding: all\n leftPaddingPx = parseInt(paddingParts[0], 10);\n break;\n case 2: // padding: top/bottom left/right\n leftPaddingPx = parseInt(paddingParts[1], 10);\n break;\n case 3: // padding: top left/right bottom\n leftPaddingPx = parseInt(paddingParts[1], 10);\n break;\n case 4: // padding: top right bottom left\n leftPaddingPx = parseInt(paddingParts[3], 10);\n break;\n default:\n leftPaddingPx = 14;\n }\n\n const isNumericWidth = widthAttr ? /^\\d+(px)?$/.test(widthAttr.trim()) : false;\n const helperWidth = isNumericWidth ? `${parseInt(widthAttr!, 10) - leftPaddingPx}px` : `calc(${width} - ${leftPaddingPx}px)`;\n\n this.inputEl.style.width = width;\n this.inputEl.style.padding = rawPadding;\n this.inputEl.style.height = this.getAttribute(\"height\") || \"\";\n this.inputEl.style.borderRadius = this.getAttribute(\"border-radius\") || \"8px\";\n\n this.helperEl.style.width = helperWidth;\n this.helperEl.style.paddingLeft = `${leftPaddingPx}px`;\n }\n\n private _applyColors() {\n const InputBg = this.getAttribute(\"background-color\") || \"#ffffff\";\n const border = this.getAttribute(\"border-color\");\n const text = this.getAttribute(\"text-color\") || \"#000000\";\n const placeholder = this.getAttribute(\"placeholder-color\");\n const labelColor = this.getAttribute(\"label-color\");\n const helperColor = this.getAttribute(\"helper-color\") || \"#000000\";\n\n if (!this.helperEl.classList.contains(\"error\")) {\n this.helperEl.style.color = helperColor;\n }\n\n let containerBg = \"#f8f8f8\";\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let el: HTMLElement | null = this;\n\n while (el && el !== document.body) {\n const bg = getComputedStyle(el).backgroundColor;\n if (bg && bg !== \"transparent\" && !bg.includes(\"rgba(0, 0, 0, 0)\")) {\n containerBg = bg;\n break;\n }\n el = getAncestor(el);\n }\n\n this.inputEl.style.backgroundColor = InputBg;\n this.labelEl.style.setProperty(\"--wavelength-label-background\", InputBg);\n this.labelEl.style.setProperty(\"--wavelength-container-background\", containerBg);\n this.labelEl.style.setProperty(\"--wavelength-label-color\", labelColor || \"#666666\");\n\n if (border) this.inputEl.style.borderColor = border;\n if (text) this.inputEl.style.color = text;\n if (placeholder) {\n this.placeholderStyleEl.textContent = `\n input::placeholder {\n color: ${placeholder};\n user-select: none;\n }\n `;\n }\n }\n\n private _applyValidationHint() {\n const helper = this.getAttribute(\"helper-message\") || \"\";\n const helperColor = this.getAttribute(\"helper-color\") || \"#000000\";\n const hasError = this.hasAttribute(\"data-error\");\n\n if (!hasError) {\n this.helperEl.textContent = helper;\n this.helperEl.style.color = helperColor;\n }\n }\n\n private _applyAccessibility() {\n this.inputEl.setAttribute(\"aria-describedby\", \"helper\");\n this.inputEl.setAttribute(\"aria-labelledby\", \"floating-label\");\n this.inputEl.setAttribute(\"aria-required\", this.required.toString());\n }\n private _upgradeProperty(prop: string) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = (this as any)[prop];\n delete (this as any)[prop];\n (this as any)[prop] = value;\n }\n }\n\n attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null) {\n const validTypes = [\"none\", \"always\", \"onBlur\", \"manual\"];\n\n switch (name) {\n case \"id\":\n this.inputEl.id = newValue || \"\";\n break;\n case \"name\":\n this.inputEl.name = newValue || \"\";\n break;\n case \"label\":\n this._applyContent();\n break;\n case \"helper-message\":\n this._applyValidationHint();\n break;\n case \"error-message\":\n case \"force-error\":\n this._applyAttributes();\n if (!this.hasAttribute(\"error-message\") && !this.hasAttribute(\"force-error\")) {\n this._clearError(this.getAttribute(\"helper-message\") || \"\");\n }\n break;\n case \"validation-type\":\n this.validationType = validTypes.includes(newValue as string) ? (newValue as typeof this.validationType) : \"none\";\n break;\n case \"value\":\n this.inputEl.value = newValue || \"\";\n break;\n case \"clearable\":\n this._toggleClearButton();\n break;\n case \"required\":\n this._updateRequiredMarker();\n break;\n default:\n this._applyAttributes();\n break;\n }\n }\n\n get id() {\n return this.getAttribute(\"id\") ?? \"\";\n }\n set id(val: string) {\n if (val !== null && val !== undefined) {\n this.setAttribute(\"id\", val);\n } else {\n this.removeAttribute(\"id\");\n }\n }\n get name() {\n return this.getAttribute(\"name\") ?? \"\";\n }\n set name(val: string) {\n if (val !== null && val !== undefined) {\n this.setAttribute(\"name\", val);\n } else {\n this.removeAttribute(\"name\");\n }\n }\n get value() {\n return this.inputEl.value;\n }\n set value(val: string) {\n this.setAttribute(\"value\", val);\n }\n get placeholder() {\n return this.getAttribute(\"placeholder\") ?? \"\";\n }\n set placeholder(val: string) {\n this.setAttribute(\"placeholder\", val);\n }\n get required() {\n return this.hasAttribute(\"required\");\n }\n set required(val: boolean) {\n val ? this.setAttribute(\"required\", \"\") : this.removeAttribute(\"required\");\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(val: boolean) {\n val ? this.setAttribute(\"disabled\", \"\") : this.removeAttribute(\"disabled\");\n }\n get clearable() {\n return this.hasAttribute(\"clearable\");\n }\n set clearable(val: boolean) {\n val ? this.setAttribute(\"clearable\", \"\") : this.removeAttribute(\"clearable\");\n }\n}\n\nif (!customElements.get(\"wavelength-input\")) {\n customElements.define(\"wavelength-input\", WavelengthInput);\n}\n","export const goldmanFont = `@font-face {\n font-family: 'Goldman';\n src: url('data:font/woff2;charset=utf-8;base64,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') format('woff2'),\n url('data:font/woff;charset=utf-8;base64,d09GRgABAAAAAKToABIAAAABShQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAACkzAAAABwAAAAcmRnwz0dERUYAAISMAAAAdgAAAJgjEiI0R1BPUwAAiOwAABveAABKnCNBMXVHU1VCAACFBAAAA+gAAAfabBoMLU9TLzIAAAIQAAAATQAAAGBiFXbdY21hcAAABqwAAANVAAAEzp74PdhjdnQgAAARmAAAADQAAABsEsUI7mZwZ20AAAoEAAAG7QAADgxiLv99Z2FzcAAAhIQAAAAIAAAACAAAABBnbHlmAAAWoAAAYdEAALocnIOnCWhlYWQAAAGUAAAANgAAADYkYwfjaGhlYQAAAcwAAAAhAAAAJBI8EYJobXR4AAACYAAABEsAAAn4/lU3CGxvY2EAABHMAAAE0QAABP7DOZY0bWF4cAAAAfAAAAAgAAAAIAYRDTduYW1lAAB4dAAAAuoAAAX6S1gL0HBvc3QAAHtgAAAJJAAAEb8c55KacHJlcAAAEPQAAACiAAAAvVqx3zsAAQAAAAEAAKkjiYZfDzz1AB8D6AAAAADbPKHcAAAAANs+I6z92v1YENsEHgAAAAgAAgAAAAAAAHjaY2BkYGBu+XeFgUGQ9++t/0oCtxmAIsiAqQ4An4AG3QAAAAABAAACfgH2ABEAfgAFAAIAmAD8AI0AAAJUCcIAAwADeNpjYGGazjiBgZWBgamLKYKBgcEbQjPGMRgx8jKgAlcgdoZx/Pz9XBkOMPD+ZmJu+XeFgYHFh2mPAgPjZJAc4wEmHyClwMAFACTIDMAAAAB42q2WXYhVVRTH19773JSLTUkXycp5CLle+7SJNIfb0MAwUJieh6TJSaGIBgchsaSYSicfisboY6geAh8KxKApRqbExAcVfRmiehhlsEHFISUhsPGDoPGefmuffeR2nEsGXvjz32fftddZe6313/vYx0Vsl4h5KmWZ8OPYrJOKWy+x3StV1w8WSiyjUjFlicxSqdi7+O9t7O6RVnMKfhDsk5K9CPfAb2IzAi6D78EY9uuZ3ystjFu8fZu02n7mlwDlTRK7r0GTiFP/F6TTleEaYL27k2dsDbHYz6TomuFvmd8OWsEC6bRX4DJ2Vf67KFW7h3fWpN2ekmL0jBTt6YAJYtjMfrYk42YHPgeJkRjkDPbb5X47wNqVxPoJ2IDtST9fsR9K1cwCtyXDtleqMk1uPsaWeda3+HUD2F+Ct8CHWdfvfRXdWt7bAVYl4/Z53t0DxOerwvubs9zbbvzsYs0uxpelpDZ2OXY7pNU9AL8m97GHmHo1+9yfBSsY/xhq8hz+3pGKnEkOE3tVc6T5lhPU9zf8bcI/691bUnIPgSlifCXkfQZEQ8RMLXwd6kAdHtZaAAtmu3JSy+qQh/e/wPto/xe0FtTM94rmfQZEJXhlWod6yJTcAaoylfwOzvv8Z3XIY6vvsRZfi3poLb7iP1j3qu/Ls9+7vr8B+x6dUE5qvl80Pxv+m7WftacasuqC/aSc/G0WJmfZ50/kugj/yfM0PMkzOZAmrYXmw+3D/ib2hkbM7GTY64Re9aAXtGcDP+p7o4PnLni3zicXZDo5qnX0727EWkvymeeCkc5oDs/oTzWQZ69JdNGQ0avXTJ61V7Re18mqda+300FvQfOqu2v4Z5izwL3PmrCPzE/hvMSFdyWOLrG3Dnr4IPu/hflfmEOr7kv2ltUry0HdmqyHVEPax1fzle+xXG9Q2yPUdiir8TX5zuc1n4dcPhvVK8uP9on9iOedcBfnRy/nx0Epm3bWt8ty5raZp6UkB2QRfVYyBc6bQX/OxCK1UdAHNoKXwFAYc+LUFoMx8EH471ORK3+F/8dF6DepjQSbpeCQ+J9/3hh8zWPNcXiOrrWT1Ollf15X3WbyHGqdZ+oSN9L0jeLr1XojJpeL0eyt/hyd1VhXN4r/r46ucr2OZmC9h+x+8n2AfcyT10FZ73fDvW3GkpqZ5q5HPwrur9hyz0e/cm6Npr2W2oGmZJD7LzbfUF+9//Wu5y50PeAJ/w0RR8uI5yh7mWRuHbg3aFDP453YfI4W1fYP7B6TSpQwXk1si6TZrUILqocjQL8N+M6xw+AHcA5sTWPQGN3d+HmVOt+efhsQ+4v2vfCtgkbsCeJ+ErRJZe7N+HoBrMXvbnSS9m6GbrT0bG5uNff0fAXxl9wxKRXw4UZSP24bGjuZ+jPdAQNSMG/gmzOenM1XyHfcBXqn6/fUI5z3Kxj3hpyuYaxoC+hjrk+W2S8k/gfgExmcAHja1dNbUNZFGMfx7z5/wDQJOcrJ133/nAwDOWQqmRpaIigZ2MEsssLGssNkzJg6vTEJpikHHcua0jCJJFORsoKwAzk1pXfdNE2N70pTmjMdxqaxjP/2Dxhuuui6ndl99rnYnc/F7wEchnc6yj+RE36nhvoIOeDXDuqJIptoQqpMhVSL2qn2qH2qS51SP6jz6oKkSZ4UywxZLmulV/rkM/lcvnUinPFOjBPnpDlBJ9OZ4uQ7hc5MZ5fT6fQ5HwUaA3sDf+gJOkGn6oB2dbYu0MW6RC/QVbpO79PtulMf0t36mO7Vx4PxwaSgG8wP1rjiRroxbpyb6Ka6AXeqW+audFdlncw5d9FeEmt9bzSaNlU+4mxTR9QJ9b36Uf2q/pRcKRhx9vjOT33nVw5OlO+MHXJmONlDzumjznrf2eY743WyTtd6yFmkZ4069+sOfVAf9Z09um/UuWLEGes7U0adtVlf5Jz1ncpa+7v9zn5i+2237bIdtt3utg12jX3A1toau9RW2gqba+O8U95Jr9/72HvL2+G1es1ek9fo1XtPeSFvvbfOq/NSvMjBC4O/DBQOpAwkn5EzmEHzl7lkLpqfzU/mnAmbL0232WwaTYPZZOpNyGw0G0yWyTDJJjpswnPCs8PF4aJwQTgvnBsOhOX0+dNnv2n4evXY6jFVw3n4H6woGfdPUfxLrJCRm/Mffwy/jCDSz/oYLmMs47ic8X6ariCGCcQSRzwJJJLERJJJIZU0f0YmEWCyn7ggLhlkkuVPSg5TuJJcpnIVeeQzjQIKKaKYq5nONcxgJrMo4Vpmcx1zmMs8rqeU+SzgBm5kIWUsopwKFrOESm5iKTdTRTXLuIVbuY3bWc4drOBO7qKGu1nJPdzr+59hC8+ynV28yCu0s5/XeN2f4AO8wZsc5BCH6eIIR+nmbd7hGO/Sw3scp48P+FDSeJxV3M+DMon1vMpjPCQlrGONVLCVl6SMOlksS1jNEzJP5kup6pJFPMyT6jCdvM/T1PKoLFSlUu5rHiEkAe5jE5t5QSWoRImXBEmWFEmUJHqlkn5VIpkyTVzJkGpZJulskImSKpNppIkGmtlGKzvYSQvPs1uqeI497OVlflNbVAtr1Ta1XTWxUbWqZrX1b0SIGdAAAAB42q1Xa1sbxxWe1Q2MAQNC2M267ihjUZcdySRxHGIrDtllURwlqcC43XVuu0i4TZNekt7oNb1flD9zVrRPnW/5aXnPzEoBB9ynz1M+6Lwz886c65xZSGhJ4n4UxlJ2H4n5nS5V7j2I6IZL1+LkoRzej6jQSD+bFtOi31f7br1OIiYRqK2RcESQ+E1yNMnkYZMKWtVVvUlFLQdHxeWa8AOqBjJJ/KywHPhZoxhQIdg7lDSrAIJ0QKXe4ahQKOAYqh9crvPsaL7m+JcloPJHVaeKNUWiFx3EoxWnYBSWNBU9qgUR66OVIMgJrhxI+rxHpdUHo2vOXBD2Q6qEUZ2KjXj3rQhkdxhJ6vUwtQk2bTDaiGOZWTYsuoapfCRpndfXmfl5L5KIxjCVNNOLEsxIXpthdJPRzcRN4jh2ES2aDfokdiMSXSbXMXa7dIXRlW76aEH0mfGoLPbjeJDG5HhxnHsQywH8UX7cpLKWsKDUSOHTVNCLaEr5NK18ZABbkiZVTLgRCTnIpvZ9yYvsrmvN518qJmGfymt1LAZyKIfQla2XG4jQTpT03HQ3jlRcjyVt3ouw5nJcclOaNKXpXOCNRMGmeRpD5SuUi/JTKuw/JKcPQ2hqrUnntGRr5+FWSexLPoE2k5gpyZaxdkaPzs2LIPTX6pPCOa9PFtKsPcXxYEIA1xMZDlXKSTXBFi4nhKQLI8dWIrUq3bIq5s7YTlexS7hfunZ807w2Dh3NzYpiCC2uqsdrKOILOisUQhqkW01a0KBKSReC1/gAAGSIFni0i9GCydciDlowQZGIQR+aaTFI5DCRtIiwNWlJd/eirDTYiq/S3IE6bFJVd3ei7j076dYxXzXzyzoTS8H9KFtaCshJfVr0+MqhtPzsAv8s4IecFeSi2OhFGYcP/vpDZBhqF9bqCtvG2LXrvAU3mWdieNKB/R3MnkzWGSnMhKgqxCsgcWfkOI7JVk2LTBTCvYiWlC9Dmkf5zSmUnC+T/1y65IhFURW+73MElrHmpNnytEefeu7TCNcKfKx5TbqoM4flJcSb5dd0VmT5lM5KLF2dlVle1lmF5dd1NsXyis6mWX5DZ+dYelqN40+VBJFWskXOO3xbmqSPLa5MFj+yi81ji6uTxY/totSCLnhn+gmn/m1dZT+P+1eHfxJ2PQ3/WCr4x/Iq/GPZgH8sV+Efy2/CP5bX4B/Lb8E/lmvwj2VLy7Yp2Osaai8lEk3PSQKTUlzCFtfsuqbrHl3HfXwGV6Ejz8imSjcUN/YnMlz2/tlxirP5SsgVR8+sZWWnFkZoiuzlc8fCcxbnhpbPG8ufx2mWE35VJ67tqbbwvFj5l+C/rTtqI7vh1NjXm4gHHDjdflyWdKNJL+jWxXaTNv4bFYXdB/1FpEisNGRLdrglILR3h8OO6qCHRHj40HXxIm04Tm0ZEb6F3rVCF0EroZ02DC2bFT6dD7yDYUtJ2R7izNsnabJlz6OK8sdsSQn3lM2d6Kgky9I9Kq2Wn4p97rQzaNrK7FDbCVWCx69rwt3OvkqlIBkoKuNRxXIpSF3ghDvd43tSmIb+r7aRYwUN2/xizQRGC847RYmyPbWCJoJklFFw5a+cihPZiAYbUcRv3km/1IVCaI9jITFbXs1jodoI00uTJZox69uqw0o5i3cmIWRnbKRJ7EUt2caDztbnk5LtylNBlQZGd49/u9gknlbtebYUl/zLxywJxulK+APncZfHKd5E/2hxFLfpYhD1XLypsh23snVnGff2lROru27vxKp/6t4n7Qg03fKepHBL021vCNu4xuDUmVQktEXr2BEal7k+V23kU3yg+dZ1LlCF69PCzbPnb+tsBm/NeMv/WNKd/1cVs0/cx9oKrepYvdTj3M4OGvAtbxyVVzG67dVVHpfcm0kI7iIENXvt8TWCG15t0U3c8tfOmO/iOGe5Si8Av67pRYg3OIohwi238fCOo/Wm5oKmNwC/rUdCbAP0ABwGO3rkmJldADNzjzkdgD3mMLjPHAbfYQ6D7+oj9MIAKAJyDIr1kWPnHgDZubeY5zB6m3kGvcM8g95lnkHvsc4QIGGdDFLWyWCfdTLoM+dVgAFzGBwwh8FD5jD4nrFrC+j7xi5G7xu7GP3A2MXoA2MXow+NXYx+aOxi9CNjF6MfI8btSQJ/Yka0CfiRha8AfsxBNyMfo5/irc05P7OQOT83HCfn/AKbX5qc+kszMjsOLeQdv7KQ6b/GOTnhNxYy4bcWMuF34N6ZnPd7MzL0Tyxk+h8sZPofsTMn/MlCJvzZQib8BdyXJ+f91YwM/W8WMv3vFjL9H9iZE/5pIROGFjLhUz06b75sqeKOSoViiH+a0AZj36PpAype7R2OH+vmF4IFAUoAAAB42mPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGdidtjBoSzMzaIGY2w1YFDiE2Jm5IDwTJg02SVYwj8tpD48DhwPLAQZmBm4gn9dpD4MDGIL4O4Ekg8tGFcaOwIgNDh0RIH6Ky0YNEH8HBwNEgMElUnqjOkhoF0cDAyOLQ0dyCEwCBLYbMSmxibAy82ntYPzfuoGldyMTg8tm1hQ2BhcXAH2VLgcAAHjaY2AgACQgkMmHgYHJ5//r/2EIFkMlEIYxQESqGA8wMPz3BrMbIWy4XmGGFyAMALhDEcB42j3CfUgaCwAAcN9yzZkzc9XMqZ123p1nd3ofmul5XznnNnMlY6Tdi4gYY0hEjIiIiBghESMiJGKMh4TIiAiRETFihETEkHiERESEjIgYETFiRMT77/H7yWQy9H/jsmnZzV9Ld4IV/RVzFZ8r9uT1cl7+Tj4lz8q37mru4ncnKysr2cqFe3fuoffSCpXCpHAqGEVU8fa+7H5RKVN2Kf9RHlZpq/iqVNX3qgOVVpVSbaiuH5APxh4U1E71XnW4erB6tfpAo9d0aMY1Oc2GZkdzUeOp6arpq/mhBbUJ7eZDw8Ohhye1ZO2b2nydt66rLlt3XA/VT9YfPqIfzT0q6bQ6r25Ut9JQ2xBsiDYkGvINhYaCXq/feqx7nHp8ZFAYxgxThgVD1pA3lA1nRrlRbXxtTBjHjDPGlPHKhJo8Jt7UYeo1JUxjphnTp0Z3Y6gx3phoHG+cbUwDSqAeQAAvEAZ6gEFgEpgHMsAasAMcAudmmVlrBs28OWruNw+bk+ZF87L5j2XAMmqZssxZlixfLZtNq03fmrab9pqOmy6bbkElWA8iYArMgnnwO/gDPAIvrEqrwYpYaStvjVp7rN+sReux9RKSQxrIAtFQEIpC/dAgNAnNQxkoBxWgXWgfOoNuYDUMwM0wC3fAffB7eAqeg5fgVXgTLsLH8CV8iygRA4IjPBJF+pFhJIksIsvIGrKD/ESubBqbwYbYvLagrcv2znZqu0ZVqA4FUSfKoBG0Fx1CP6ApNI2uoOvoD3TfTtqT9kX7sn3DvmM/tJ82R5uPmy8xOabBDBiO8VgU68EGsTEsic1jGSyHbWA72CF2jstwLQ7ibjyEx/EEPoJP4yk8i+fxLXwfP8OvHApHrQNyeBwBx2vHW8eoY8px4gw6F53Lzg3nrrPs/E3ICBWhI0DCSTBEiHhFvCGGiA9EikgTK8Q6sUecETekgtSTEOkhn5MSOUBOkHPkEvmV3CYPyF/kLaWhLBRNBaku6h01Rn2k/qFyVIEqUWXqnLqmK2mA9tKv6AE6SafpPL1FX7skV8617tpyFV37rrLrwnXtlrvVbp3b4m52e9y97pT7uEXdEmrpahlqyXuUHsBDekTPK0+/54vnsvVOq7bV0vq+tdh61HruVXtxL+/t9U57b32sL+lb9GV8a76Cr+Q7ZcJMDzPITDLzTIbJMQVmlykz536ZX+WH/Iw/4o/7E/4R/7Q/5c/68/6i/6f/ilWweraZZdkOto8dYCfYGfYz+4X9xm6zZfYPp+QMHM7xXJTr54a5JLfIZbg1rsCVuDL3m5fxet7Ji3yE7+UT/Dg/y6f5PL/F7/Nn/I2gFgCBFFihQ5CEAWFCmBOWhK/CtnAgnAh/RKVoEHGRF6NiXBwW58S0WBRL4ol4Kd62OdtG2pJtC4GRQCaQC2wEjgLXT2qfgE/Og2hwJlh6GngafvolZAnNPNM/Sz33Pi+96Hmx+uIqHApnwpvhw/ZIe0/7QPt4+8f235H+yGykGDmNXLyUvaRfrndYOhY6lZ1Ap7sz2pnuXOncjb2NDcZGYrlYIVaKncau40jcGw/He+KD8Yn4bPxTPBvPx793O7uZ7lT3ZfeNpJLqJUjySCGpS+qThqRR6YM0L32WVqQ1aVv6VypLv6Sbv9X/Ac9wsl8AAAB42qx9C3xcVZn4OefO3Dvv9yMzmfc7z0kymUzaTpJpm0fbJO30lTZtaZJSKAVE3paKWKFUQBTa0sqjIFYWV0W3KCq+sCrrKj7WXV1FVgVZFURc3RXRFTrz/845997MZBJg9/cPJJ259zy/853v/Z2DCIIfUiITSEASai2l4atAkLAPEYzJNkQIntHAJ7wBIUnUaqCYYNeK3rZue9SejNqjpFQZxv2Vb5GJc4/N4ttZc6gMf8+RKWRHQTQxfqanvL3khVYwmoEXsUkkCGROiwmJk/XNJTdC8E5AeF/t8+mSw+lAyOd1BJ1BaMheEHXetkKnkO/tW4F7PG6XhVhxLAVfc/SbeJPOYTUYg+c1m/VWhy6ZjEVTqVjsX7P750YNwVAwZByZ25/911A8EQwmYmEYR7WKMvgVvEogthQyImST4O+DyvgFH8AkjOLo4PgZP4w/Y9ETbDIQZMRon4g1mtikVUcIEWYkLRGE5KTNTIzGuBEmlKJP6EsskIsaqykFp0shhOKxaAS6CQcDzf4mr8dttzvgP/qjC7flCvE8+x3COYn/ccfprxXHC/CnAC8Pt+6+IfvOe72mGzMP0D8XHM6+58M+042tD/hMIw9kH7hx9ujsaO46+B8+rO+9cX3v80dhjhgVq0+S68ltaAV6dPyMG2bYBgssSlcgrQEjvRYBBpDEJNJo8JwASwerpteLczosinFxffP4mRBUaYUq0pG3VgMKE0xuXlBj8cLT06VmjPJd7a0tmXQyHPA6LCajQS+hFXi5UedpK8RSA7h3EK/A+ZybLr/UiePpeEyU3C4PYEcIB7FLbMPueD4OKFII4Zw319MHdVLxcxfsipZH+/euGt7icl29fXl7ZwQn206XdnRNzqzce8kwrPRVe/pb2xLBnv+Z2GJrX9cxOGjRbSESSQbs0ah/ZLVtfFexaNJtIzocTrriIYrzWlQEnBkGnNEiH2pBA2gSXVDakw4TjXZ8NdHpyYQJa4yYSBqyD3aaXifpL0ZaLZoRMN0SFqzT4RmzaABgxPH60mBba8AviQitGRmcLE3me1oH2oqJqL8l0GK3iD6pCfrROqywJXKABlgSYp1YBgmfvQUAIk+5DcdEr1v04LdQ5ue433RT5Vumb7Wn9bpU59vgH326fXrEqNcbR0x6jPX435d8RXy5c7/uxvmmTNM+V0tzc4trH3ycNEtTkpn9qdyw5Cu+76qvCjYyiUbQVjzBsdJqw1phqI9IOgCUKEw01z3B8GR6/IwFCq5AgkarEa5EOq2k1UmHkCgBrqFDgGJkBjATMAzAPQejhF03acCSpHxBFJ1pX0XehPbQ/7ENSueWLdIGlkRc0wath2cQLDRvTo95A6W+JetqoYwWXbBYGxh2y3QpuGYUo/L60a1rtq5a2V9oScWjfq9eRCN4hG4YbSyVtpA2GQP6CjWIQPhWyXMcgP3jDWFviHgLeS9QVcmCJdg98E8SMAXqpVOwzaCKh3ypdzTu6N60asvgWGhwudHdPNh3UU+fV+u0bbW5uj3OpnBiLGxLRbSG9xvttogtvsFv0qUrpXe1RIlvtD0V80cjhkjQ5LVm1nTF1m8xW7IxS1Mu7k2krEm7tdvudNoDUa8vF7AkI6L0acMWd4S2Ewut0UgHLKRpNBGOh1qTUcToGdBydBpYlx2FSwH4jvA0gAfNEQxfNmJk0CE7tgsADGeMcRHGNizCXoPDahQ9qVSTaLI68SvxvmLeEvD7A5beYiHO+YSmega9RO6zjSEzBqZ0FpXkPqtnsIXch1woWYoZMO1qAtFep+lr6BoebISPLuRqFmCvetODJN/bSdIFgDvlYMvsze3N9kDcYV+xscfr7dlY7vFPvnvf5P6RDkfPsgtuGl9z62VyX2Vswd8l70RNqKWUslnNJr1O1OqgswlYJ6xBawmdM0WJBFrv8TgFna/NmR7CUroQxulCzisNYa+UDmMpi6XvlN2X3dge6jk/a9hjyM51h9uvv8i9IRmKYMvyjjFd025x04Hu7gNlcXeTblXH8tg7DvIxoB7STRzAJ9tLLUDOtWQb7EEN4CZm1F87I8IzLcgKUMTI2Jika25L5oGHUUrtjrux9atf3fvEEz1PwJ+9T0Cby6uXo2fQYYCRtWSSMFoLla9txxRaYqowSADn1MUiU25JAhwV/E3RVEuLL9N5m+g16RIdXk0oHA/GM8HSsjQb58/wnbgMwkqo1MwWZBsd/wxbEDo6KsXQBSnko+4yLv3s6qvl+SH0LLoRBu8veRXsoXsTI0kLLNxI0SdXI3R8UBYzVLECIxfgxMPkOsoHSh7W4RFoFdaEcQmtg+EBo9kuLACtPWcqk5O5cxd1c7mDPAQ8xIFiqAMYpiCwBY1NUqEIgSDGBuN2YhT0O2PumFGHHNguwqCiC2m7yEh73s63Nd2wWBotRyPlsRdGN0TXX/TUp5ItrYlPJdrbMuUVLyzf0NKyYfkL23fOpqKoGmxJRaqxJMc7F/zxgizH5qMBmQatw3wcfEKEgsQupZP24wckLOCX9VtD5z4u7w+Yz0UgRWZQrtTlAlA4MYH5CESYYBuEzQ1RIUqDBSEu0CYzKNM2MqkF7M3lBzWFQSyzJyBEsHtUikUJkzvqzthHtm4f90QAFULLr97pMQT2HBoNDE20WEYmt1zlw3fOGdv7luXsvqzX5Yvo9MJOrUkX7Cz43fnz2zqHLLpZZZzvgTkuQ5eULFEsaLowEbQg9gqy9BoCjKHiHBVYtHNAtWHYVJwVFdIdAFAA5dbsVwvWvJ4uwYplkuFmj8tpN0poGe6XGCIBOS2EhFwPn2Q8mp/nxgunyxk2ib84Xo5o02Ji/NBcMmUOtFR+9dtsa6Qz0Hvl3rDBuee2cmBgTdLU6mjPWtu3jJiswiTWCIIr6mjyx7cnA+FAStJrdgomQzBb8Ns7ekzmUrYpWOwJUf5L4fBFwD8DsqJ8qUfARMQTgHvAejUEdrgoyvgogSQb18ByWcwmIxQ3ULlVp/O3RfPRPM7Z6U5P5uxxCZ+pHMCbv3DkSOWDvzY8c+kefEPl0Oyl38Xi6wrcb4L+UmhVaciHidYOMAcsxwKVoyh9oQAXZmAj1AMco1Bzk9flsFmAx6VwsgacWBH0opI9SkXDqJvtCg+H30ury2ld2vPww+2xaGflN2X8ZE+rq3LAvGF4w+U7DLF1JQoyok9HUsFWA16l02y5lYgby97wUD6i6AbkNBtzLxoqFZtAGMFUe6KMex/Tl1QIqcNtSWPUnU33tvQGfW6H2UCHrOO7ltBdy9YZqDNIsXSv1khohG5jBT2AOWNx9XhUkiLjw19YXw5rHOaPn8iGTVObz1+zIayPrV35nU9FoyZ/W+W1eGp50fOCq7giY7JoJoiuw7+SiIk1fU2hod7orDtq72qOXRZsUfc42Qpz0qFUKS6BVsP4GJKnInCNDB7okM7u1OiaQDPBsNBRN741gCOVDWRl5dtF/LBhdq7ipsS1B9o7wvSnLBpCI6VVTRLREjwhwfbXaoh23zxl09XCqacrFgGOUOga6hlqTUeysazdgsI4pOdkd6Hogud3hhgXaiRZSu68C77/dnZbsivQDATwE0AA/aGu1LaZR65Mp0NdV3bGkmaVHG7cbsyuc1iWp4zp4ZaW4bQxuczmWJc1bt+Id0WS2mQ0lNEmI6/Hkt5IKh73JmOAE3S+hxlO5NBYadgMSEyVZoFhMmACoDIV+7XaRVA5A7jR2ZbOZXIBn8PK0VnH5wvYTPjqWzBMI6WiCuGoIeTy8/P73dYJY9q27r2XRKJm/YbNb7tgox6w+YXhdRxdvv1asuWTndGQwzRJRMETta3E0tZtFooNKqbg/ssCrZ1NqVgKZB7GC/F3HWngRgivs4v0X6R/FOHH8boz+TYqF1HeDWVs82VsDWXK6ADpIsMgO8XIIUV2Ys/fR7L472wpMox22EX4+zCyQ80zO6Dioxg/Xn2YtiDzZdYGEpH4GQ3CPcC3O3BeC6x7e+Xv8XMHLjtwzRUfP6DaHkgMaHkMdaKPlwxOWAcHrAOZ4Hp8CpZDEAXNlVQK0FBDBxSQZXtR1IIGqtXGtYo0n5ZLi4fepHgpOV8Sdg8s+D61Rk05kNTdCRAqWzPxzkQnjDGWhx89EE4u5sDiAtJ20tUWgf4rdEuk3+usHd8TpK7ewYgP+yNbB6a8Lu+eDeft3DS5ctzv0iQU24cuaM9kQuFOf5NF3GaxbRocKo16fLU2EKZznRJ2klm0GiB39rNuLBqo6tUEk+8w6QFVMNGJ5GKkM2LY/ucjWe1gmlByEhkMmhkg0UkDhZifWRE0yCBqDPvetDKFWguikhWW9r1RLVYWIBcdHcZofO1webQ8NNCX62hNp5KR5ianDcSg1XiVmek5AEY7kIccJf12BrhUnmk+jHrkKJkt5OzMSgCQ7gOKGwVeC0WBcUQlVSOWlRxsG9mSTm8ZwfdO7Zxc6ejrlyKD+cm2jo4275oNoYFMs8vg92B7tqNyU3uX3d7Vjh8PCX7vT0LdLQccZtvezolOPNu3tXvH+kp1cLC7xd/q64j9NNkmaEmoinx+v+/F5o5AoKO58pC/MzAqSH/ubLvYbD8CZI+uDUUhC9AVapmi8uA8IZEtaaJAmAoI8rZBr4NyEhO5fW3dOAdTiUqFqBDHyX/EiXtXVO5deQEO3mqglrp3v/uX2M6aZ/vlOdC5HSgA9GtZqU+PKalG85RasdoBTQOiJfeXSoSDAb/bCfXsUYnaISi3rRNVcNQjc2J4JX8q48/snoq72nst6bFllY9hfzwWaa/8Hq9IpTvzlX8nk+P5UEveaBnpd4SK3SE8h5MBg7etclUq6ginKS0YhfE+C+ONoJ5SthlErQBGAsBI5bxsxBpFTvB7HBaDhCI4rJVlBIYHUW40Arygy0yRoeCl9pBzY+XI1BzuGFnrsn/0Q7lyvKPl4c97WqLbN4OY/OzsTqtusyCNgXAsaVZpXTaZ3rwE/ZuQm64Rs2RO1EBNtqByqLmdVjOUNMa0DGLpqGqISUZ7CnYKoR0G/ION22LRbZsqT+DlkzjWXvkmfr2c2bDiheKGzOwYFc9lXYX1a6GSmhFrNWzNBA0RuOyprBnTySjtgQcWZFaVMlgvt/yfF9hnmVxW8eBrK7fh/8z0rSITs7ed/6GtGkmhv4icZXJhttRO7biL9aVVZEIuD9odIpA1Oke5mx0GcnklxLp4vTx77Py/8LaV9UxSaSoEsncsStiCcoF634KFVQXACLWZ8sVN4oT0Joubt4LAYqcTXWSFZw+3FW/Cqwxb9i5YZAHfgg17Ki+4dWYVDs/B0IwoXUrAd42ANfsIM+CJ1ArMNZha1ZeKwiDW2+NU0TyMbzl8uHKATLzyyrnH/vpXFbboR8z+DvoVAyRRsEVVU6EVe/kw3bi8jgHGMQp1XFQPN8N2ZUIz2wRcuJgVOJgIslIAuQhIbVxJpMZQCpG8PQ1kEBAP29a8Y6wnuG/rbDaku903uUFy2CbN+g4/3lqu7OvZlKVjrL4quKD5dnSoZDADowuD1k9kNuEBsgSgwPu1mMo2RKyzh/npW6K+hRHGJ1WtSX2pPhZmWDlE6T0oTb4mh81Kbb861I7bJdmSBbSCUOMunQK1Sg2SQk6yCBI1XFHbFTVXkW90r4mn+ny9K7uyhw0f6Hf5jYE1I77TLYHSYI+puSPqy4bjg22iSwgZMrFMrz/meAnwsooMxsCW6VgxOLyy26gPNLtag5GQbqMgKetP9XM9lZNFEIsxk5MZzMnsvJysBznZweVkWDm+vwyH8QOws8r49YqLbyzWnrAC2rOj/lKeUg4NwBa+wx/YXIcoKNAMZvgliURp3Y7sDgfsL4dOF6AbLNcMGlfcTr0CWRy37zDc/fxL7z1sTN9w3Q0ZA8ypcjm+89xj+Jptzz+/rfK+etrRW+qGpaT7mS/iIUTpl3BDA1JbkIX1yZE6ncNeipRxnKYd3om3pI2H3115KM36O9WH74UOL85W9nEZg+7xn/yf7Bo5xa6Riyp2jeQCu8Y5btbACWbXqPzP76gk/7s3MWxwuv01oDtOFKQUlELBQU0TdCdS0Z1qniplk0EfBA0eKjjXxkS6uIx+c1mcChhp9zyfAyr+pdLauMGSWrP8wqG3NWNbRwwo+R/w6xtjhcHACu+yfFwkX8Xe9vBQpJ3BqHq3sJ7pEAW0vFRwAVdjVJYcYYyXgUukCDGnnVcqe7LpQkshEgKApXBKWhRgkihxiy6VbmCUnYKqUi4GwmQ2ONq6tjk60it6NLFg23hHZvWa3enrV29OLwTrTePTYWezZNWKei2ewpLdYva7zbPhDWNHFUhzm34PwDkButEnP2vEkqDIlwlqNsRadEiPReCQWhHogCTJKhLR1ZGRDJSl9oBFyzLqoVOIiloUnhB0ZKkKhHmZ0kmMujqTuXR3JNzktZhAihJRAicMnNRkmSxOKY260lJIkEkM5Suqah7C5J8zk91r2vdvCB+WF98UG8qZM20JQ6I/Ibj0rZVbU8Wm9jjFg/Z1Bl/3mo7WZ2WEcHr6ehOCFIwFRLeNALnBwwLRpsPeSPunBML8dYAkjwN+dKN942c6ASRhUIcIFsk+ynhrFUtJgUQSaQUQAK5UClJbymxDOVBJMGpNx6KRkN9rt+i1qBt3yRqowi1kZEkpmCV73BY43OJnh0sZ7+cfdFLn2YvMz4Ztw1tc/sfvMzIv2y+Yl82k26aRmOdsfCv1r1l0W2C+Nd411SZxGvBGQtFSSLVtxybnLYVc2qWWwqhAjRFRO/bhyuvkA5XX8O9nZytO1s7K6qvkK4xXDnJUcsj+RqA8sxoFVFZEWShBe9lLDECxYuCdRp1Wg1zYSWVHL4DDrqgO7BPsp1/tXHO4M/ajSNfh0OigYc9G/JHKdDYS7cQfrZzXV+6QefWPyTj8K8+DQb/W4gniEtBzNg+cc3pzBWdOwjha+e3tX27W+5+4xVZ5jYxXLlmzBp8onvsvmf9rJqFND6OmoggkFGaDqKkGUH1GJxFF4vMgj4P92PW6YFtOkNuXe4EBpOOS8Muf3P5+r8F888ff5zB4b7rd8P2P3+IyON8LnR6aG8b3V84fnsOHoGt8a6lUeYc8p6cBplbUWWozEAAdkKqlxCErstqddruTcY4hTF2xhZwVU4etZEj9ovL6g18zfv3B9M+x5sGvG79WfAmnfv7zFb+rPPPss6qs8zSTrzOlpJFSZjyxKBhNyATzZGDM41wYM4c5duOOys8fvKvT0HnXg+kqegVv/9Lg4JeKlef+CG1Tu83XWduMDxKkBwZAJkAQwePz9q8FBmoQ3x12BzdQY2YEYwy+B3+5MkzeVlmBzwKbn8PvAwy8mjJ6GmdQPYWT5IxtDK3E18zbQKpPV8/gi8l18NyJb6jxK4FOjifJGcBwmPO8PQGIP/VjsMEgYUPdFvCCLBQHzXaH4brrDH/aO0puGX39Ze4XuxL62An6Uuuj4t7hUriZmvfYeuGbCaUt12LkcZn0oCNFqJT4qIiGnbF8L0hV3ADhDQluVzwGQlcayJ+YN/uSCZPRbXIZPQZLPOYx24zadM7rzbeKFnylRcqtWmG1SJLFWRzq0pnNYkfR71/RKVqUuZ0hXUy2TbHxvKF/ho7Fy3w0z5XLZWY3cuE/ocfIvTYJH8XrEJcvOuDPFnwWtnIWrS+NuwBLqN3HgEUcwaDH0smKWixSZUKYQzRcgxpk0JxG4lwmlcCorSWRTWXDIZ/bQYlgHMf0qreHgSHfqxhm2IMQcdvjadViEGXO069MDI+tzY0fSGtcTT1vO+Y33v3pHuoU3ZRuvXai6dceXeVcs7tpbHDlqE6zSu80ScKERQy0tlkrZ12SeUrnnvQHAk10TpTebycHkZdbxwWsBVldo/WAvMy8JwlqRGEulCQzNpM5UeAioh/qx0JNKX8KKnuXrbLrKK6CIjLv8JUFFqmQ6xnAfUwOoJS8eLDtmvEcHa/W29eT23x9S/PYT7uwK9hTOj+uJwe/qZX8mXbHWWtba0CvtUxlnvQ4tMLv3QZ5Lw3DGsQoTYjI0gtX3ZILdPKQz2M3G1AMR2WdXDWCU75CmN4mwrdBDEp5/HN8PIXu971rvyswdX4214W7c337pvyZf1RHY5YmiFbIPJkRtGRlGMk22fUMfkm0sjRoBfi5qBtjgkep1MEOzQmy1uJvwigWbEr6k06H3WYxIC/26BYO0ksVuvmVVzRNdaC5XVeEDtIVnzT91G2IXbQi16UOVNL847kjdKkNrj8QLQxYGSuFHexRKvuFOPQ0iGoB1NpTC0VVAW5JxaIBr5tCMoLD0oJBUo5MpT33PCCBSXIMdqsj/cmq8fA/7LjCqQL0h9ipb89fNz9eX3/2Lh0ucLhiUnLZNBnVL/gncjfyo12fBVlIUAI2giyKC4DcOqllXJsaPyiY5TCgZmo5gA26f5G3wHWhbT/y2535Xrud6zfUd8wN/opWDzJrDmSyTYODzUO9PQf2h+zbB3t83h/8AF+8dTq2POHRTUhmh2fn1spJTh8y1TLZAPBtAdl6orQ2ikUBNESQCamHD/inMEfJOycKbOxxJiHNUQkpjda3txLUm20ttBfisUiA2RtbSEbP7Y1kXkZiVvpaPKGWRmanr0ETEd982W3rmkO2jUOfSIbbrpnoUdFm/zXN/k3GSLH7mZ96dQxt8BmNziSNa62eQFFnUhdFpzVXbI72jB+DjqSgkSwjbie3ANcvf1bAlFOOn4nT4DtOL0Dt4jiv1RA5+M47/5BCakZ5M10yc+mhx52zc0OOSj+A7Nl7WbCIvXgQyBqbwMGuZ5xGcsvPdCZOzfCqjGStPMLhD+NC3yHvQUYQBkBioYSAddpKeSsMh/NWkwkjk9VktZi5s11ksRrzNm8BZK6bZNv2+QdxVbFjVzA+WwHOSapnqmX0E9ZPiO4jOxY01H8535tGw3YR2UOV9zRZbzZRG4PbaQqZg7xTaWGnss0kNy/z3SGP4QPBQtxl6vA1Rw+2DLfBeBLxYDAeD5/bqLdIRQFIJf5FJVagHI7F271KgNejNvTez0Zp0ISsBfkV8wmMK8Gt6gtMKCHVSqKWqDejLCigvNPO0LKKKaXZ76YkzWoyoDbcpphSQBmUnY5xOzWmzNtSiJfH/ZDm1hVRwR/2a3wdUY/u4MEIsMeeIf9xm7cv12oMdfWn40XRYYgZXFAsAsUCOu8pcl3lbou+bzgYbsp3J0VbSy4S0I8Ksj2R4sNZoM0aGqsj2xMphs5bvjRI4+CWL5BrRg2HSWv53BGlrrAD9nIKdZU6DAKhxguR0XACAhyCTSxpBUVWS6FUj7PH3Zvj4q8955VFmkZUnsfpTb7gluU9wT6zf9c6Gbdvt5kOdt3mNOKzJq0ECGpTkVxnqTxSg+vyHoTxeWicjqBag+eoGWd+5zVsrkVGVNyUqdtd+KyrYXfJfA76c6NorW0lWW9bafJQl7kn2hQF4uUGXU31qA6SnKrbUoYGj2R2tnolpUrYxehTU1/3f36ru/tbXX0D36MkiI7jLCVBIARkOP2BfV4dZXP3AtXkMgvo0qrMwkLnGBS4vCIjqiCkBSazxMNNaX+ayixruczinQdLjZHFyahpjdCyydfxrvK81DJxbUv4p84g9vqZ1PJFctCs1c2TTs03sc3l4oKLR8/pUw+Me7087sHSChfICpjLClRMIHheTkA08K9mzCAryGN2rM3RMWvzi3EBPM8BYKuJHvyjOsJ/8TXNvk2VD/zUo6dUP+jEri9+v57cnzuCbXo3kHoYussl4xn+HX4KOdGlJaMeRD9kYMoLpyoOqt7K0JZVF5maUBszIyAy2VfellxUzQDOvB/VVALaYYLvTuTsizM9g6Mq0EYvl9RECfA05S92rt1pjZsK69qNXUGgxy6LLaLbJjptqfbKL9i+oHg6ATDuprrWwuiO5ILoDpBtQn6vzcyNEVK9MSI/b4sgNbZ+kZsi5DiPT67uDwXvu7LHZ7Z6Xx0dFJv6QI4t9hiCp66AZ2bfq8MlitMWaVyQmr3eQD6fsaRSPv7d4fT1t61wZOKe+RioM2Qt8qEVpX7YSSLb09QwCBIEyA6UiVE1fI+kTMDttFlpbIyOxsz7cJNO2W9xGuMDmikLhqMD9gJHeWmif1Or065xXfiDHzQ1vd/gnsqVSi9NmRyX3Dr1O59tooZuMjnRS3e6i2qFEwJDTrraezRaIvdOCb3ZIIlUepWtqIRyL1G1XTDx9Wx3AUgLDju+CXR9UyrztmGKcrhUecLj0HnwRKUEBEfRwWm/qg0jubQNQ7UxSMLT37/9Kr/Bf80tti8Dh355zRrsGqi8i7cnbGY0ss5+kXwL9gvQ67n9gmr3sv3iEx++faPfYB15cK3F0Dxxu+3OBzcbDKat0Of0Bqyr/HXDztehX+zMZiu/V20Ky6H/pewXyTewX6Rl+4WX2S9cn/za3QcN199t+/w/3fNOw8HMF569777IV395kgqeGPT7IhmBfkLoopJBiQihWzTK7Hc1Zn6ZpdNdsEfkUicNKpNLIExNEujC+ZKEB5W5nKCkAJrpRQQCv8StVGl5nxTi6lIAQ4c9cWFX2RKyD2WMnWPOnieVtXF293Y7gyPTA0969DskZ6FTXav0BZfuTRe3d6mxfJMwFxPlu3Q4epgO0BvFTpJ8i3aSDF5d+Rf8UuUxvDVUHCvijm3Fyr+Oz9tJhpidZI7aO2rsIbegM4qPjKiJJHU+Mi/1kc0eIE+eK8qxuawtgH1/KU+DM5g1HUgkFZNAvhA0QOiAJdFQXe2cCKxKS0N1Qyhod0f9zHnnTTPLZyHFbLygK1Pa4sm5mdFcjOeM2ejAQLrFODA8nIxF0qtH9o6mWu/YEGneerA9Mbp+9L3JWDEVOTWxhs4thD6Er8addgnfhR+vnOZRMpXTcowLtZNfjc4BPTeiINrASbULCTT4jpyvCsxJ7jWjIbeASjARAPk2KtDOsIIbACmoSOt2mYLmwBJSNP1MpTxq1RHjH03F4slUNLq12Wyw2nVreBYNXhNMxENUwK60s9SZizuz++dGjMGQzC+fJBtxBeaUQr8eP5OGsRrsMCg/Rloy0czt08oTHTyhX/Tyl+lpXiOGiAFLRDpfj5UskOSkUUeomKCItryl9sVKIrXcpBHrdPN1Sn1KcaTXq6XfvCKwuqZIGD5Gw6lICuYWcnYn7fZk1ASUR0sTSahzmaWcUGdKJ07bqV4NdNRNbW9UZMLt144O9k9cWx5cHTG43JuzuW2evG//5gfL5a5icfno2eLw4BDobJoJosWVP8Kf9QZd8Rh2MQGK0/fjzFcCUghVqqOYSCKZoA4MynXQPkW5ZuFH0owOS1JcWs8CjOO9dkc+Z3cwQllgIddyqpTiC2csR5RyLNhBjG/pWbduai4wvdtlLqZy5TvvlITcex5oatmyd/bkbFFxg5dnN/hSOkkzpZNzNNAo2YZfA4jl0L5SECiQyaAXBRQPBZoJpnrVhMNI0DqQAtZyWcSpoVG/BJ+vREUkBYbFPNNsP7wFyjhNuSglJAQDFptTic62RC6VGxrQ6praCumCnLiQLnjpnLwFrxz3J3mlNI3ySRcWxPvdnM8DZbTm89nW1Reuas3Sr2YL/brqwtWtt3VQL2FHor1tNN/uKSbF5ApPe36Zy7UMvq6Ar0X+dSIVDVFfViiWlH0SzwMdaqaxChIWdJjleOkxNuCaDC/AMOOMCbMsL5hlM+heviav3cG8tna7WRdui7L1ScOftGyqtmI5ucuNC9/9bt/JkVOK1frtxaPLnvresVlcmv3ClwcHv1x81+zK2WOcZpyR6aJEtQ0ECAUM43xNDYUEoRVpJI0kahmlpEl0TqCUAqOWs7O4HUcqz1UO47bKvyl06Az+LbQZBOLbXmrJxcyUL1KBR8NoEZpvOxxKJ0Kl8FC+QBepA9MQtnpDDUsnIV6PG6viG0hv1JJM15N50twsCOGFylNdne7l+X3DW1ym8WKP297U5Fm5uqmz8sfhUsaxobsn5QqYV60POz3p83ascba1mOz9K17Yb+9eHl2eZB4km8XtkESnS2/trhxhPqaIt1mncfmMks8xbg6HmkRLS28ksKKF2ZGXg06xgdxqk/DdhEY28phERH5BJmxZNIb+Hd2fesoukg2wM3U0LvF+INVQph2vwyXSareiEeTB6yIs3pHUxjsicgw/BzzsBvJ8DQ8Lob+BzPEEzRQbP2PifiiQecgVKgOltMtOH5IjNc+mS0YeaG+304iCJI+7faYyTAJ/2zv7pDxulu/gEJGdf8fD+IPkYphHH7oX32VZZreSDaiIh2G0Djbau2iQJYEPw4wBUf5EAriT7AF4nMBXynb1Mv4xvh42qRVweBmz1nciGm2FqfWODn6aKZlzzHW20W7DyOu2Ndub9RKyYquoOhM4YtDgO7raaSbCxxl2/KaFBtm2tA5nMsOtwZaWYKC1Ff9YfQIfyq0B/pzOq/o70k32OFIworJdIsMwcpFHjZaVqFFRXocMehGvIS5YJw/s2xcj8iq+qMyXvt9KnPDeu9j76pP4T2gv8zMck/0M1IazksnBUbS7ZDTBXgsRFqvE2XWTrAgAldujZSYcKs+lMSxrE/W2HGl4L6cG0ORPr8tuA7BFcYRrO2kKK5ExnVTvYrJ7JmB1uULNblwnwBsyw9FwMB35qQ4GvkCQ576X3arfDgvUywUEA4EMSu0Sh9XADFXwdSSZgcJrl+MnoxKNNLF/o1AEYnuf6/C7y/iG3lU9haHZc0+S4rknlX30M/Qs3u2UWMzwzzhkf8b3D6om0C+Qwybiv+P+HPQiOsnWwQ1yeeM69aj7bTMoUkvvtzSJYwtCNpHEebvVM8JK2MspusPgbQL9mub4kktgXZX36UXeX1fz/nNkEt4f4O/xDl6fXKTIa9Ajldc60SdLhlYsatswEZU44zgVMWmYsYC0oqC9GIk6+vZ8qVaU43iToEWByB56w7Is/JMXwxI1GFLxTylPiLgNBAIywypuAFHGR+XATDISbPK6HaZOcweXBqnRGtdLg1yqAZkgx1BO4Z88JpLS5kOyiPj3OzdPrqIBxusEKZsfjPiaI1sHt7LY41p5cdPg0MoRj08K2TOZYEQJPmYwZfGsQgr2bxIhkISPkhl0O6w3wWduV9Z7YZlj5HdLlHGoZY6TW5YoY1HL3EXegW7kZW6sK0P+opa5m/wYXUbLkDOX1bczopa5l1zP+yJyX4AL1B9/N4tv8qB3f5YHY/Ks1Az1duhonKQOiRqduE+P64MzDbKu2wykVQ9Lrb9yYQ0Wz9dYYRrUAwRLSCNwHbAl6Y+Rin64Lq4TuIVUiNrjBmwTNtVEeJ77ReVng7OY3KKGet566y9xM9+/o9UEjcmEOacpzuO/w50qf3yJrU2LvH4XM1jgGrgvLHOMvLpEGYda5jg5vngZtjYt8tr8kq0NrlmbHI2dZH118PGAbrdIO9haU+YY/nNDGRpg08zGw8scx8cayuigTJCNh5e5Gz+3cDzVCo+rgzIZVuZj+EU0wHFuoH7uFC97ZLy8neElrsFLFi/HxpyT4XxhA34vLHOM/PcSZRxqmePkjiXKWNQyd5EbGvYJj9/7i1rmbvLz+n3CYgozQA9fA3qo5GikqbQOgjpI6B8c+8hHxj5yeuz06dGPZODz6Gn4DE8Yrv0Q2n672vYj5F5gjKz/uNI/i+ERAlBmmQyP7Q0wW1jmGPnVEmV0apnj5D2LlyG/V8vcTf4Z7eXrvFcpw2JSGOwH5L5+VI8vanzhNcDVwjSqnm57FybUpkwjErB2n+rfpZ4PUTGbhINNHqjjXht1SMzcms65F0QZ5muiDD+AZxTz/N00zDDrCIXtlX8hyfIBaqG/jFroRfLBP7hcu6nZWM11/AhaRb3iKRoYR+0iEiiaoFwiUSuI+2tMOlqtZkavI0pk9yq0anlvvrA8b7cbdCHVOUvms7FAqFONsG24LoJMScIoDII4yF0cO3p6dKGBvhtXrvS0uTOpnnXL6UxmV/eHvBvSLp85VexbHnC6/V37fWZ84Y5djs62QKLQLKSGQv0Of7H7fGqjZTZbj7eY6G7XJvrD8TZvJmY89xysE4sLIffCOo0wOnaUdLP1W/j8GPlKzfMj6vPjZEfN8xv5c7ZH1lZfBTmEgLz5qiyH8DKXqGXuJn9ffZ6WIY9Xn68r8wW1/XsJt2DBc+FlkCuXo2GQcv7KWYet2UWIAMwEF7oJO/qAH7qhPDeqz+cf6eRH0/KhCEkdhnKwxlpgPDT2hfu5zQYiimhOMql+Rn6ah1GLjdugCnrTGqU2QCVanLIprah7w9IgjsTHRjDaMDGyeWzz6lJxRb4n25pJRII+D4u1WY6XWWpjbULYK2e2KUlQXjXjrz6oge0IKqSosQ3aGjuAGpDTM7fWMlx2rbnCb7Lv2xnJTUXNvR0NwQ/fTnZbum8r4wvkIIjKjf8UDPePH5IjdjQWa7ItKwkbJIML9NO6yAir2WqWoyNe1rnt/hgP46HyK/BS0Blgzcc4L0Wf4c+pTZ3h4FoZNx2LPj9GHqh5fkR9fpysqHl+CX/O8O7WBryjtpYvsjZf4X1hHktFLaWv1jw/hn/G+NhvgQAQ1hd/fhxfx57/AZ5rWF+vyDzwn1hfWOlLjbv5M0qB7lkqDVhZGAK1f1BZxWE3gDI1H4dQ66KU45n7Wvp4gqzYEHZTSEsKT2ERzUHMXZZ0vVXf2nd6B0N6S7yUM7b3h7QHBwrFoS2DpcLK2KBj+UgIt24bfuT+tq5gebIlmsDBjl7v+z19PRG9Xn/tYN/AwNbBob5SdMix/II9/e78ttxUV2uqa1UsFTnVw+FFtjM6sEmmA8sYHcA1dIDPn8J0s7yuXrTY82NAg+efH1GfHyelmuc38uesr2wDzeFlLlHL3E0+0LD2lC9nCfA8qi2zTM2PoYydamYfw0dAdwaelWHGAPw4PqK0W30vtBtX232EjFZ/Ivf9E7lMUcXT6bp5LnyuzLOo4u903TyLKv5O180Bz8+B+1FYm+fJbR6RdTATuZS8wvy2o6XVNEauxt8MFOpmkRrEjiyMlENqnFyNzzmn+JztDT5n+0Kfc/lgx2VLu5xfEV6sfLXO51xFeF2t01md0yV8TmzeVyyct6yfPKPqHifIFnSAy0YHFFmE85T1Kt85QVLVl+W1erm2HSGotnOS3NggB/J2jqq86ST0xepWp2kOolr3YWE/svG6NrVudTM5yGgcH8PD5N9BRmJlDLUy5LNMZkpzmUkwNMjY87RvrA53eF2HWvc4+egSdY+odRX84vllf1HrfhBk4IUy3zwNHZPLZBr2NR9DVG3nFLlpiTGcUMdwigRqZP6oqhecItc1wB/qCnryflsKrWF2hh2ko06nENFxtY/HyEEHK0d1DIHgDr7euKPGJvISw5sWGSdmGN7gGrzhY12v8o0TRGrAGz7uoNrOSfL+JeZ8VOVLJ0l+Uf3tg+SdbwD3tXKZeAONK1fPk3WqFhn/epGLt+NS26nOyjx2rYx/H4EtzeDrrde7omo7p8jb32D91srr512Af20y/v1jQ10WY8jwb1zGv5U1dYNq3ZPkq0vUParWPSnz9nncbZPh88kGGPK6l/C6rExLAwxHKy/K+nwba/8h8oX5ukz34/1+iMzD6jk233Z5vnc3jJnzwq9DmQm5zAl4xsoUa2H+HFs73s7HyZPoaV7maUVnfo3HLKrtfAz/Gi/jew8vk+n/C0DLB9g4ue59F27Q26rfhzIJxi9fkctc1LCHQW/DfrYveDsn8O6F+6JKEyww2xevyGVG2L7A8/uiSg8vybA15e2cxLcvhE/1P6jdga0pl6FO4qs43KrbsMRgwus+jC9CFl7XosDNUt2OfqrIWbY0/iCeq77Kyi5HVsaz+Zwoglvn9yr6UY194oP4YD2M5Li7z4GeoeSaJpfINS0e5BGVcrvCxdROStu1SagTJ+R5lPFT5D3wfJI9X4/+pOrGNzHc6ZTx4m8NsDkDdb10r+AbZfnyA7yvaifNM4W6WVb3IXIV7AFWd1TFu8p/0zhKKLNBLhNhvAYrvEaJtcRfBWx/Z12sZV2qavINU1WTbzFV9X8TX+n+/xdfib/6qcXCK+U99xDjs12ybeLpxfYuRgLF8bJsE/sNeoyXeUzdu0AzHmJr0SXTjPey5/2VF2nsJq9Ln+N3qHv9IfJ+pTzZQb1Icl/vZHytzJ+jD9WUp3jFxokO4iYU4mMI1Y7zGnLQJo8THUQnF5ap/om3o873E/gFdAcvc4dS5t+gnW5lzKzMtxeWqbFb9sjyCVqC5t3L5X8mn3xShRXnUT0yrO6TcfVFGg+pln+ItC7gRT118kBjXyfUuqdISo6FKbPc3TCNZHfyk2YEftIMIhp6ZsMhmvanFW6QndGCIMcVydHsGFFtzO2iyKoT6fE6OhlZ5TDn3lSapvXG1Sxf6qElK5IrHW5Lp6856nNVfpg2HJazfjvXtp2xG1Zp9IGQr9WFl2Ur+9Qc4JMs+JnuxzKLC02iYmmZF8as5Zm2hGjmaPZicn6Uc6IyyoCPaow2s15N8NfWxmKrYbs1obPMlfwZNSybBs0enA+ibRluO6NGZs/yyF01pPY0G6pq63xGtUeeIDsbZG6ud61X9aMTxNQgO3G7alBt5yS5dTGZD9o5qup+J8nyGptsQK17H/lcvc9BrXunWvc+Zklkudaa3wNsQ0BDy6VJE+jfAS9BIk0rR1pRQy011M1HWBakUUctNTOSgVPCaJimgoaz0Wyzj+vrNIzRqKPRZaba7GIag5Ff4GgQ40slFv9oQ67ueIlzv+hd//l/yA34Byb/YT6jOJGQPRHJ5Kwr33XfcC/PIWbnSQm/AvzpRAMgWW8vbbViCfdinZTDGqEtSZBGQw+vEjQ6AWZHT5nhMbtGkdAkbq08u+4sRqOrhwaX9WUHugdaUvFQoMlF82c6cYepwdrwJhYnanco5FWzQ1I1QH2+p8DCenvOtgx6rdl4o5kp1mn1llru+3QspNEEEo/6PRg/uDDvxmoyWessTGajyTTl8n7J6wVFMvMIT8RhPPNVoYfRrT6Z3v9HA56xWGHyEJSZksu8p55nchpG87R5O4xWnVJoGI0z5nUZvX8FzfcbVfs9RXYt0e+H1H5P4b819Mvymtn4C/LYXlhULp9gdHebTHc/V1PXodY9Tg4vUfeIWvc42SzLLwmaT83rMh+XUbXXTTCavU22132zpq+o2tcpMrtEXyfUuqdIVvYlJ2guMzzvl9v8D+U5jSuG59up5xr/3SySfeKInGZ99ct9FRr6YjHJgsTr2ilffQr4IytzsKbMfL9UtgZ5aoCXGaht51FlDEz+rgJvYWXC9X4TjeoTuYtc3qBPcjvOjaodR7FX1crf3LfyA7WdE2SS+9DwvE+vqOql03W0tUb+lsfjVNs5uYhuWVT10uk62srrrlDr3kuu4XXJwrpfUOveS3pr6jrUuveRv1+i7p1qXUaXWd2NNA9drfswmabn6dEx69S61c3kUoZ703KZ7zXsF5b7zcawguO80N6AGyy+muH8Thnn/6HGb+VQ/VbHyRUNsjm3Sx1RbW3H5XgKnof9F7Xu3aDHLvTHsnxqtpcH5b38fKOuS+OI2V7e3WDf/jprf1DWY/c16rqs7iW8bo29YKH99ets7wzKe2fnEmM4oY6B6fmy7Zr68aOgOawuleyYCDqsxTU+Ozl/eMH5jokYRpl0rC3R5nFYjZIGRXFYjfjPsdTh1ILMYXaCqZI67HZ5vj4x/JfNb894/OmarOFUquNA/63/2tpd+YhvbPCLgvb95mZJmLKI4c5Oa+W57gFXk242Xshupb4GFvP8CZjXv8DoR0qr/FiracaClp9jSpk/SIX7EdbRUPILJOqumaFuxyQBYSuVTMQjQa+LsnsQuNpwq54FkysCF2Xr84mYIVyXiclC+D4ki12RtJPlZRpW78xm7OWMwec9dKhjY/9WLnoF1qz69tZjseWJUNLc74g4PMenvj1zqXzOn6FaFoos9nBNacSERQJj18J3kQhEpPExWiJob6BhVCzIcqFcS6ValrZLpxDEAV3dFNiRRzXH1tBBv0eVFWvPsKEirSIoEn/teTZrQUrk8plwCdmuymcPkg9xfziu3wtP4+dUGfFBoGML7TJAT4SdNfTwQXIH+g3H1d/U0pOnybBKE6AdtIOX2VGju2h/THEeb+U4L/yK4bxQHwehvYqcsDEbJA0OE1LKODW/ZM/X8OfkLqW85hVFP6N6P/mUzPfLws1M7+fP18vPqT3gh+x5WbYHvK72e4i108PbEZYr7WjsrDx/vl5+Du0IF7Lnm+T270D19tc2eV9/eAk72gnVnnWKBOV4lt30/CF1vR4G3u3m6+WetyGeT3Yx2rtZLvMV5Odl/HVwZnNhMESDgqsGtvPPd9fB9qACW7Rbhi2zx2tC3KZuS/OYIh7rhA8juyLnP6rBj+PDtb5j4Zhsn09z37Gd+67/CuPU4DN/reURdzM6fKusy/7DYvZ+4WVGhz/G6bBwtQyrH8pxJffJ7b/YgEvcP0Trfkmm4fcsGrt1P/lGQzxVne+dlTnR4LPi7ejUdh4gNwKM2fjL9e1cr7bzANlSfVLeX0/W2a/nY5HuJ99flGep/lZW5tpFfGi0HZ3azgPk/Ww8uGY8vJ3r1XYeIPmF46n+IxA5bU0s0v34ew0xRDSN9GXFJ8vKPNbgD+P2R53azgP49oXjke2P16vtPICvYuPBNfBZGEN0P3mqYb3q/JaszDsb4MPb0antPAC67sL14u1cr7bzAFneuF4LdJn7yZcaxrNQl7mfTHP5kNT4LVg7OrWdB8jBhvHwdo6o7TxAmqrfl+Hz/To5cz6m6H7y5YZYoDp/Zw18av14XO6tqO08APJqg11TxZ/pOvjUrhe1J9XqLA/R2FQKW3heq7M8RHJctofntXrHQ6SsPK/RO6hO970au8OVfB2BxrA4L24DwTZOly5T6JKtzgf9G9kOkeb+Wy63I07LOBwogTpchy/3qv2wmDO5n35ah8t8QHMex/21/TAfwGa5TpbZxGk/j7A6sk0cCNUjdf3Mz+eDNAaU1Znm86npZ6n5MF8gq2Pg86np5/C8XwF49DOqbHyCDDT4FbhcvV71957Af6jXaxBm5xd8F59FDnq+JJXb2BkqPDl2j6CIOWYTiDcObNcsFG+4pS5ddyzBmcazCLicO83i2NvoedVUzrVBb1TWFRpk3eSbyrqRN5R15dP662Xdb4wfSHv8tSfkBFKx9+7q+0osUfle09jge3WaVVTWlU/H+Uoma7eappo6E31M1OWwIpcpNkULvXaCnUmJ6AkeAg+012jqMyppCryvyWljAJRtivUAXCQLvx6kC1Ly6wFcm56vs1Q+wMHN75mid5PYRBKpu3cqDd8fZDHr/HkK/xF9U9DAd4981tEfcAc5wjwkD8k5KstwBW8CeY1aU5RnN5Im4MG77SK6cu/rPLOw+rqMmy5Y1hI5yjxQSvk00aMHyDU26iVaJz9zQbtW8gWq7bIbK1hOSHUt+i0y2qjnSSmXwefwDeR2G/WwfV3Jm8Ev4DvJnVTbxS/xZ5Wn8J+qF5N7bWP42LlfzefBVA7Ccz+5F9mQg2aUfJ5e99GH5bOeqGmRnzpFdQrAmspBZ5Okb24yppM5jy1GRHM2a7JYg9bONouBuvMql8M+upUcoXGWLEPF5ZTPk8DoZlj8a719RNe0oHEPyzsSs1gSK5eHkgazxx5yNOmMseawc9vuHmLRZzJ6k8GqM7akJCMxL18eZmO/EJ+rfpncjkIox/rK1GSUImGanfNAUzPpfTNup80ialAIh7RyHowQ6yT0jioL5vH39HB3GgxJbzbBHwu0RMJOn1Orcdlz3YF0OOr2ejQap8PdgSvugDtuNelNjvbV7KNZb3I256JsTI+QAIxpD7KiNBsTv/tmG0vTYnffbMBILyIrtgjyOLAa88/Oa45XfuRyOTxnXS6PgwTMLtFlNMIfM4Ut0VVPkaNAj7pZ2ymB0qSbEUv9QfOZP+yoPL2oBarkqJktzvf2eNnWKvTRZIO/LV/ZHNRbO3rzLTZjcIjoAj0Rn4Wegm0jvr5+jjc/J/rqFnKN3YoclfuIvvfXHJ+JnuNzJUOC1QFyqy0L7w+TYO+vaclzv6GfaG4TlAzKqUDsA4PRj/Cr1YfJt0CvTLB5+Ai9Z2b+jiCKLBv7UwqiCKk8DVGlayWm1JQ2fueIBf/M6G2NOIJWW1MkHzS0dFgs5oDJEsCv6ZssiaaASacXPJ6oMxtsSjrsbknHr9irfABXAE+/gJxAREtsFPmoD0gsyzxfKqXK46I0yxX3xI065MQOUV3CN7/Kq/JKe7vF3NaZhX8s7e1dXfSiri5+h1elKdNk5PdwGeHjKrNkofdwWeg9XADjC/ELAK87gfsdQ7cD9xPxsZdf4dDlvI8yrVdYPk/lBMzrU+SEfQwfR0nN4RLsdL5imsMc/NXqub8Sa7WfPA5l7jv3AMowWqB7FBEWeQZtXA68/BR7fxI0l7M1bZxV2qg8jf9WPSBYYLVt1U+TG5QS5AaZd/4JtwLvfAlwtUyhO37GwA4+ormll88vNeWiGG1qLnn4bXQLX0yXzIDMJh1D5fnT8FLpTiWKGf4BeM+Ge41GjbU36QmFQ7jVodP5g7F0KNR0G8W3z1QnqvcAGfj/MRaLQVc7Fomef9znVWwyOUDLH6aGYOGslkRzk4NsLD4W81ucgmAPtbucKwaGKOx+WJ2rTlWfZnvqfdW55VmZR8zJeypf+Wu1u7rTbsV3V58/Z+bvyePnzPL7r1VerI5Vv09hXzlWnVX2ZHWWw17J6UJhBbP99KiDCXo8xjhNMLt54QQ1bIL03EHmMA/z09nZaX90fkAe2QxBlJCAZgOt5PeQwWSvbus3aU0GZ4u/e0VKbDKZrFZB0JL2bP/PYk6dXmcQtIawx4wd3Q6Hw9pk1LSlEt2MBlTXVj+EjMiHzqdj/KxBPh+LLk2AUfHL5aEqxG0P24Ob6JFlUPbmxd+yg0LdTodNr0M+7NPOLxMlHIzuWYDXwN7M9VAC8r3O7uaE2d/mCXmS0ZjVrDEa2z/fGwu1+DQ6opdMdr8r7Gy22wMU7pcD3E9Vr3BKdF+8/hyH+uvPqXvikcp/V79c7Yf3J+D9j+X3P1buzah40Deqn8aWt37WYjIfdVc8+NQ3xsehzLln0Leq/4xd/7v6557Bf/7WBGXAFRPqrl6EozSv4DOE5oQkC0l3xYTxzu7N929mYzz3V5Dk/sRymGX+zTg39d9du6BxLc5BcfzhHZXdZXLq3F6k5F6Rn5IrWA40P5WbcX8C3J8mlNOcfzcNcJHvLtVI9MrEHE5GhbgBj6zFK8/9Bl8IWsoV5+6YwXvUe6uEMRjTSnreS9CgFbA2oiHshHUQL+n1Hy52VAma0dAQEjcVLXNdyVg45HaAaLkSlySJO0t5+kO+U6jhuBYiuXNe+W6K3r5CvctUSYl+JDaQ7DH1O9/WsrKzafaS1/bPuVpL7d/J9K161/I1LbmWZGvipUR7oj3Zanf3Zumh7SaDyxLp2VRqnbrwwqnW0vquqMO9VSP1dWY6g94V3RM0j32iZ8BlC6bD7s4o88tPyefJ9Ja63VbYsx6sFcgEkxuo9MQD+t2T9AqBJnYgixd5c3Znzi5JzSxWtj4tlSbie93FupTUnM3i+ji5uC4XlRxq57EMvxOSAFQ/jRR3YxE2pAcEjHEtvdaCXSziomE4bna4DjuNz8uOtwEJnt53wS6k9WOfTmLxC3mWmkpP2o/ba+90IHduGn3xcJHsH2iyuN0pQ0uqGHWvWY2vrbjwy7OzlRtsVkkzpTWINf6VlOpfOQpC3eL+lXtV/8pRGo+8SN1jwh1vWveY4Jivy/wfvO7dwsEGWxWvewmvy3ww5xbE3/Oz3Z8lj6JueoaEHmtRK9YA4hpAt6Nn2mpBu9unnHXDTg6pOVm+G3X35ocLiSQ/eZGerwSyslvKLZLQk873peJpKkoW8jSX217u3HjxwMwlhovevp4drfQUyMfOCyZ6gi6MPc2PWG271m8dxX8/ua/oc0ubPjnW/QBNTmKJ+m7nYZB07Oa2rwvrpyozctzxR+vijk+TK5nNhNTYTDqq2+i5r6oN8DQZa7Cxc1viOrWde8h4Q34btyU+obZzD8iYi7fztNIO2QkMbWFMBrfRTigx1FBmG1qs7q63UHdXXd3X1brnkduXqHu5Wvc8srum7lm17u4l6/aqdXcrdSn8lRxbkAQZ/NVcW5uyDnV2YbYeav5Umq+HXc6jWhSez6tjmyKHlhjblDq2KbIJLVZ321uou622rkZU625XYuEb6h5U625XYuFZv0+pdaeXrDuo1p1W4+g/Oh+DXwNPHov/RvA82gBPFpvfECe9rS5O+jS5rdE3CmVq46RPy3Hude0wW/c6tZ17yNQScdtPqO3cAzrA4u1Y1Hbugnku3s6Najt3kdYl2nlaaQf21J2cpi6IhRpme2etvO/60WJ1d72Furvq6r6u1j2PfHCJuperdc8jQzV1z6p1dy9Zt1etu1upS9dRyY1ma36bvIdojnR97O/tteuq5oal+bra5RyxBfCkV/69xta3Q167rQ3rQm9xe56t7ytymWIDLsE40b/VxDGfxu9uKFOEMt8h73GwGGFW5vLG2HQYe61v7jQ50pjnBGXW1/jmTpOOxnaYrXed2s49sN8X0nlu231CbeceIizRztNKO4BLty8ee8dwZrOMbwNosbq73kLdXXV1X1frnifnxDfWvVytex47AUWpe1atu3vJur1q3d1KXQp/JUec4c4RGXfuYPhWa++uxbf5nLU0Xw+7nHPTCE/hEioT4eG6PHVhQdzU01Qmwko+7kfRYnWVPPg3qnuUNNfUXafWVfBBWIAPT1N8wArflxg+CA3jt6jtKPnxje3cqLZzF8k1tlPdxmMG5HZOk+sbylC4spgBPFKH50JdzMC2ujii0+TSxfadTOen69ppiMUSSmo79wA+LB7T9YTajrJf8MIYBrZGo/L6vrZYHKC8RmN1/uKFdY/KOTlvVPcoMdfUXafWvYfsbNjvRXV9x2Q69j+Lx2Cw9R2V1+69S7Rzo9rOXSS5SDvbeCyH3M5pckVDGbouLJZDbuf0IvlOC88WOErWLBGjNZ8PeRT/jesHrP0Jte5psnvheilnUqp+qNPk+4vlycAY1qnt3EN6G/Jt+BieUNu5B/9miXYsajt3kdkl2rlRbecu4mjkNbXnW/H7vcmlb/l+bxKYv9/7Z8Llb7meEGH1oP8DRMJNQrPdSjx4UGtUbI9ao6xzyX6bRe4wdzbeYb5q4R3m+NVFLjFHyv2qz6DDNnavKoUDjONTbBw+/IgyDiKPg+YK4j/iXYLGliKepymN96CTSjv4bmgnDe08Qf1NjMOz86DwK8p5UMxywg6UlS90p0o/v+tUKx8HFY067OwGMK9diudz3nzOXci542n7LzYVi5sObx0oTpXxLeKsePYs/KkcqO2jmZ43YZIIEVhHZEKL6Sd6V7aEaVCaHro0YL2e6f0xvXxyXjRKO3XaHUZduM2b593WdS7/ZUNQh8GGQgdxtTIa9oHh0hM4jd9DbaHVp9ETs/J5U0/U5oEAJbGl6NlVLF/6CRa748DXswtXgBZo3seuJ/SBLDWANqI5dAU6UropHSYa7TZsNr5934xgMAsTNqyxYiLRIz4kZDRLxouRHpkNevN+doGnwC6xcZmcgsGAZxw6u2jRsmSsvXu2bBoabGsN+CURoUv377li7xW7pjfNbZlbOzq4caic72kdaCsmov6WQIvdIvqkJnaxvJsmb7GL5YW34B1YzIOQW+RZckG96ILvP8f9ppsq3zJ9qz2t16U63wb/6NPt0yPU2TDCnQ3/XvfqP/m3af6tMltbcl83/dLNvhBf7tyvu3G+KdO0j3sq9sHHSbM0RT0V8KdyQ/0r+H+IfxuqL2iWOuU//D4c5osFShKWfWXcB8RsXhsxMuiQHdsFdmpqp6BuW2GvwWE1ip5Uqkk0WZ34lXhfMW8J+P0BS2+xEEdv6NelZxAdpmcCkjj+Ue25tvw5LF+kFKTnYCr3bs+n5dGVZWl5hXTOK5UfeeSWRx75rz/84b+YD/wY7K3ra87FRcxzG0O1+XwSzuHL8IfXqkZTJrs/TIzkOvne5lfov7i9+rBdRM4y4n4e/ErtNcwsZvaP+ArigX3TBHTujxHZg/NHbmwWQL55kjxLjoJ22wGS5F/5ya0WJxaxC0tiACOJnlQCD0zKA9gi0/zOkHabkeiBmF1BQzsTk1YToTfNMytgbNJiNwuShGYM8zfC0abbKLzIzaym/sibVCmtrCuNTCa1rBXXVETztaARYjbPtzE9XYqlUgjlurKdqY5UR0sapppMxGPRRNRND99K2h2URBUU72ohJ+Xgl9/rnhZY8ojYhqV4IS6lnXH5blJnKhb/s/Wiqam5E/a19tXw60/bXNrW1OzUXnPLlr0brGusw9bY7Fw5cc3wrDXqLBY37nl2dufw8PAoNopTQKwrB4hIpnTmYrF4Cr+f3luK34fV+yX97FyygdJyejYou1VGizVaIO70FDmdfKQsv9Faj3W6uI4iDz1SjP445HN+6Gml8ze50pDfx/buVe9zPXRoahaPlmdvOH/r7FTtObataFNpgw1rNXYsaNOYGA3ChIgFiZN9Hd3yyECHoNVq5hDLVjMYao9ObUUt1KoOA8n30OHQo1Pls23hV76XqfZ4W/hdcMLtunVb9wTWTfk8ttWplvKd8KMRlWNu9050TFy0y6Sb0ohjQfic7LLKB93yeybaGN8aLq30wd6ysP2pEYQJA2aHX2NykY5ORqMVNPuM/Noz+TpwPz3uxE6PDac/Jhh10s6PfKe/cZy2x5VJ5NM5MnF4J/xcXflt+vBu+DEc+QG+/gv0kFc8ma0cPgaf9pflM6UEL8DVBwh5TcmgxTrShLUSPXOQHuCTBD6jFSXtfqTTyUvKTo6e4Qcf65UreOKcx0sU8g019MpVPE56FHLAD535hu2uGMUE5ToedhuiF6ZiEeSLL1Wu8PEdOwz4kuWjKQuZ2oYd6ZE+z9Dbms/S2y+/hsuzExsD2ULzrDefDdVef8lj9shWMgE0s1e95+M1Mo4SaF1pzEhP2GUQ19NTdxnE2bnxFhO7986KzWbtjMShn4hHIyF6piY7dIbdlQqoY7PBKtQcsyvxs+Pj7Axedg6vUz5ZXijdbkjPvtt1/NHOk7MGg373ybZH7nDeMFe4/XqDedON0w4DGWdn8B7Fc319lQ8dhY9fqGwcxhdXTg4zWkj1wU+SB1AYaGE32lfaawWECbDTr5FGQJptZqyjhyMBr9kvskB8+XZcemA1P3iL7gML3wednbEIRp3dnd1d2dZkpCPW0Tx/ng69oyqMQ1bgV4X6O6roQjGcW+SuKlECAbfuvqqPfezgzIx8Z5Vy+VAW/+txmpCWpQlponbrqnJ5VeW97J4yz26izeQyv2V+PrbfPwp42UNzUhOAkfTqTWDiSJjQYa0es4ucDVgwYnpcKiCdJM7A8sUmlZPGgNf1wOw6Oxx9OVgsV6GH7RnmxWGEk1+qISchqEdbq3kI6ubHhnjH/qHxtKElsXH1p9dsiFACMDX32WWrg2Hz+Mb95Xvh56OxpMEqTmh97kx5hR32vX52p8cnrtW7GRVQ71oQtpAplEXHPmsHjFPv69GJRKMHUoo0+CKKcbFJYqi/r0cpQdQSLGncoOSSR+GhRkud4iAHo0O1xQ3qWeTNmHGXYMADy8wvkwB0yeKskd3kPH8LskxEam5CJhS/1ZuQBaHmJmQgLvwu5LFR3+kW/9hw06sf9rYH5ZuQlYuQX549w29C3ro9VgysG22adWb8yjXI/D4nYBqTKIjS6AMlgx6bNAGsNxL5uqksF+jpgdjIiPQGo34/cFwu10/O43ty0owNhrgBINKxUBlYvK5cfrrUhFA6GQnBAILNXrq7Y3SPWyh3mKer9GoQGS0Y+tCj82iYX5rSqXsZocW3TvRfCD9CcaQXyNR3HCHsCH7n6dm+2c6NhTX0n2Uiue5fXK6v+pvZHb1UxrkNGH8nevJzkTBBDC0o7e0ASipqJREYAb2ul98xajbQ0+xn2NW0kybQbRiNTegVGaZVqYQIvCX685eqTLGmd2FhZDQqZdFS1QCR/GmQWlozqc50J5NY7PbuRNSeilJo0WPt+cnq7Fz7HD+5mx1sn5eA5TOJRT3e3oMvv4rdnn7V3qmRtS7jhTORofDYU4Ytezd/cWqqHC8W+f3pAwNW3WYi4so1MKIb8PbKf7lBOpFlE1QDxwhoUF9joPhsM9U5J5rpvzpM5ULG0PQ18OBXA/AwVNhLksSBKSnArL9PYJFKDXcDNAIPzffA7gaYqbkbIBZFKBmPtsRaYNyRRJQBUbkbYAkgvhn8zr/C0rI09GSxTgEcVngkiEXHx8/oYc4FJBr0WvFKJOl1ekl3CNj4YXqJD7swFFi8yUi0BurwNYh6wzZgKvo52FP6jc2lfloTnh7631adZieHtFKMSsbjbgeVEeN2sxhuc1KyDFuLOuA9TDrAjAqxYy7iymXKdAsWyuesrmeI9g6D5j2HzbOr3X2d/RuNLl0+ldne1ZPp8dsfTgBJmJgNOy2zs+622fG15pTLJ20kOj+8d86GoupZlleyXPc1pRGWqm6iUQFAjp1ajUDoPdBYwMKEgwYVyPeoHlIubBdm5+8qAUribPGzu0oo4vPfnLvgltgvjbXK56g6vN8wDj9MXNufXdt6efYdl5Y3JTclx+H3Swc7NnWMw+9NsfWl9e8cU3U88j/kLioLlFoJvcVBo0Wa/TTKWsDafTpJvWgmjMJRe8IFv/yyMqaIM4QCPkcDkin4aIRDzALfyy37dhX29p13YctBx7Jlib3JZf1OPF48f8Xb377i/GLls3iyudhWeQe+ta3YXPmMeg8feRTodjMQghWlfhHrBC/WgPwIpEVDJM0+gJjIMQDQQblTmu2AZNTuWAtU1qantxfEZYWg/mBSWPK8KgjiEGU2+H7leNI1QF+PHn2Wnk/67MWzuGcjDZUe5eeTjsyec7n66AGl9K7GV4mb/JnRBhhjNOgx6iQYoxCCcRE1WHKRGNR0stlns9BrbLUiCwihNzLSAyQLqhaP6eFtOX6wtSDHeLrxromBwGC0KzuVunDjynVtW4ea3YF+W8g3u6x3WTYcNmzYFHWk3DuCPd7XL9g/uW7y6pnOm3xuh34sGMF3tF9aKGZT6lk5mjNqrlsWbRZS6GTrJ+wSulIon/sV9d6RMyfljINzv1LiuFAZ3wd7fT3U6Efr8H3OXaBld2Mj/SRr4/fJ2jj7wNYyxM4LexC0/RyVunpSBGaNNRREGiIQdk44u/R2P71sS0Mv25oPUpbkIOWOtkQ8Eg42u5xmI4rhmE7ksgWzVxb4PV/UEhSl5EsO5c1ZMI7Sa+L4yTYSjVrCd03eksutWJHL3TIJn3pWnPuIVt92zciad3YUcvdWvoJ/oDV0XLVq5MoOQ76z4+Do6MHOjny+o/PgqF7zeYOxM1/MFcfwDu3jJkNHT77DYH5Mq5zB3rfIGe0zNWe0f2KRM9pn6Bnt8vtHWP2L5fc75ff71ff3s/dXy+8n5Pc7kIKLfeQVwMV2mifhwhhYL8sHFhAVVvbLuRL7QQmEpZ/md8QBz9CgjbEo0KdUtD3W7vParXqJ4iUFr7fmNgRvHwUhYOX87Qik9naEPxV39pbeNtKyMqMVUzvHW8e6zf2zA9sPr81ufUeosG7lisLQiGHF/pHJfb3+iGHdNcNur7Z1bfvUh6+aOn7ZwP4Nw+0jawaXc50kU32a3ALzpLpjB9pQmrAYiQa1t4WCGq2mCYQyrcDvhJaPTIT5UDoFoiq8mpbkm1G1ZGMygVCiI9kRDVPVMOPI6ERfm5eZuGm8kJfZPOhM4rG0JLg8XmeKztFJaWhvKi14dqzKD2W3XDY0Ohjesax7Bf24ckXLyvbkf7V3De3/f+1da3AcVXa+p3umu+c9PT3TPe9Hj+ahmZE0modGj5E00jgyfss2tpEFaxvbywpYYVNgjDGKWFibgA3rxBiTkEqq8ig2pIqHC28C5EfYFLWPSmBD7bKphd0sMcRJbSUklNkU2KOce2dGko1NbZIfm2xFUz3q6T637zn39n2de875Rj6ofWkkrX+YTs9kDq8anb2+J1yYztw7Qc/843BDeToCX1FGZho/GpkZLWyLNh5wtnyfn+dOYM1YSKaWovBdBIVYMoWnAGNAQ0YhgYWtykWB6rGb5mL0s4daiD10fpKr7lwCM2g+l2KEyxRRlA6PFhoPmcOuBVsZQ2Km6myclOGMeFsbAotj6NwycXpkt5EWT9kELFyKhqNJCwbL0LjIzTa2vPsuPJfuG5+sgg8s1Z3md6X3LBQ2vDl2vM/1UBNa4q15lglD722QnRxDXSkbuZ5GDH7yPuyFhYW2TtAlcB2tPul1SMFvtPTdr7f13a+3Y2VR+T7B/tZGcb3EJl4lVZUxjPEjV2aKSWzEpsoyk4rH/j7CFSsUaP2t2eGnTEUrb4XrH8s0dk+CY7J6IJXiTg9f/A/6/hFykF/LOXDkKZE6WVdbPdapOwx0XcVRVRRrRjjV4FlDYicUllniaFuqlFNJIKPVcr1S78klS6lSNOSWrSbqxGMR2MoXloCPP4sZiQN3BXuuJmAhxV+kWuxU21EpDN+oT3a4cxO9nuymld7Ouwc9pYmMomRWFj2jdyXS++tiz7aIvWs4JXTmoRe+JXbnINst9k4Go5sOVjZnev3D/XG9Eq2Mx/uH/b3B0Yo+0ds7cWsp78mFC2lbplDI2NKFYq7cQ9plDh9iHxMjd6x5XsV5XBIbGxbBnTTsLrVDxl6FNy4b46gHEzNFTjcJcRYDdHozd03SVkwyr+pymk2ikcQgJrLep439wGIosR6+iTNSxjZK3UEe6S7p/rjmlzu3r+ruSoaCAbti2jWZ0yPJtJxNgGPi9tGuQDIZ89vyxQ/vPtzUS1W5PPwD0XC1/IXatNuETcODVQe5GCcKXVEal2pta/41Q3hcmwg8mSGi0SBOEQElEFACUTTswqm7aNjo8wJOLxM0PE+Pr8fltFkEA9FAMwsqg9ako06Z9ZjMg8aDHehVr8JLmWpPPtw76jKPVZL9+VKsULWJ1f6rXgVvKBHqUm7z5ILJYI7+f+fKC6zu9qDAdc5FFPKHzTl4hhh43rDPDEyDvbiQxZU/azsisxNmQRc2BJrIP51LKUxHPj8BrXDe8NVfgBSXKK4mUqfc/rMIVFuKbRQPI1VHM81XQjy15v4z2R+De2jL0IE/zb7d+GjNsb0b9sLsLP0+1sLZGeBWOG8hOjff3K9gaDvmBaG1MysszV0WLnB55teoE3MLk8fZxOQxt7cQnK3Y0HQ8zeNrSm21pZcEA0e4QtZo4oyVlAi5xkUw0F7x4MGDZmxmhcbfPPnk6dMsHX6dxT7YiSPx5ThEtzSdZrYtRpLmyAZFxjffK0eVqFkkziUcImaPLVMQG3znZXzpEzHWCJLxGHP0U78zvDK8chomdqxcf0PjZZgYy2TGGi+PpNPJeha8k/jXOF/fWC0kwdtTLhQa59P51r7PwtOgU9xCbiP1k1vc32ldxwlYuBZY3N9ZZt7OdncELaspfFHh04cOzR0+vAdOwnxjvnE7YUOI+9INzh9x38X53jbyOHmNnCMXIQZdMAGzcB88Ck/Ac/AKnIMLptfY+zi2j7k2GTHxg7TBESuhM0FsciSE3ybS3BpwEhNUIIv3vcQHCbIXz3TihQ7yz+RhukGO08GbkE4lZjhK7YWJCjYa8x3Pvk8eQOoQscAJ+Br5faSWiQceh4dhD4yTn5LHMC+NyPA7NC47OUqmsNoEIhEX+QCfUCJ0G3ot6cBzkXQz3v4Rr1IA23twID2Gz1MhB0HyENlKaMOvk5+T98ijeC7hc9YEmNPG2J3/LTkBpUz/kqTcy5asTVnDv4CsIsr6q1+dFKuA9qMLhMPZA4frFpEXePFOXCnzwr5MmvP6dJ9Xnyd62KeH54g5rIbN6jwxqBbVYJmPgCUUtuwjoZways0RT07OeeR54tIkzSXNl8fjsRG7bViSFE1S5khKKSmp0jwplgqlYmGeFAKlQmBuDAJDpcDQHKnkk/lKcp4MDvQPDPbPk/6+gf6+udXQVx3oq86tgWr1IawKXjTyDCQDS38GK8TktJpm3OD0hZ1TWQibfeGpKPi6QDX41JlfgxyRtZw8s7JnorszIWi99Y6gvyYoKU2ZIUOOgaGpVVAaBUfNmy85Zq6D/ApIDuSTeG9oYBcZGBrY2Hzhr1FAxOtL+7zp+QykdV9an/vVLaZauFlQn1NMlmsXk+4Ne/Xw/P/ycsmko7yXFo43PEP+y68QKxmc+F21bGz/38Y+r439T8pGtYTm/s8XTs13zZY1hX9jL8AH8D78BbwKL8Dz8CScguNwDA7j5w78XAcrgSp4ddDJ+/j5K/JNcoJ8jdyAnwiJYMoLmP4C/BjegR/CD+D78Ba8CW/Ad+Bb+MRz+NxzcBZewie/gs9/BZ6Fr8Mz8Mfwe/C7mNNzmN9zmNsTmOcTmOOj7HgIHsSc72PHAbgLvogr4JthJ9wI07AB1iFHs8jXLIxBDTmbQP4mkL8udnTiojiCCx4faCCDA6xgwVWoQBrkEnJ/EY9PyQXyEfkX8jPyT+Q8+XvyE/J35Ifkb8mb5Lvk2yjdOZTxHHmVvExeImfIn5BnUNrXUObXUOLH2XGEfJX8OjlE9pFZchu5lewiX8Cy2MYOF6mQ7ThcDpEyDqBpHEAFEmaL1eSS4o2tzLqhQoEn7PgLKjh9rZT1ZDOMgEi9BUGjmpaWI2GlqUcqVsLAYm7QZZGsxZrJlidiyuwrUmkeTanIWrwix3mRx3TGthNrWyHYzbHfWoGFT2AZCB53eBHZM9FM0GIenz8KyADlnPKEKzJjRU5VtLayS2CRVZmVWYsVrkijqMY9jDnMdBSY65lGf9G0Baa8bXHGWFcpG+3nc6C3LS01xjTdlCkX20pfmZ4xH35guqi4LtKUxiL9hdlS9XCYi9G4rimqfgPmYs2kbFdGSzGXKLQSUCrME7Nq11tzx2MEKGUWmt7LzdJhPsGURmDVhgUoihovRTvc1Zjdb0vH+zujHaJFMMpcoMyHpaDJXQh4C5o/agwo9qSNV5OBzkFF0Wwm10hu+Ok/uu6UxAuSpTMXmdwwbFM+HpYshk7foNsXM4pOW6dd1oPZXtmn+czySFdo0+bIgaN/oL4oSdOrvy55DN/Y/uVY1m7hLa5A1OoMucJZ932B/nw4ogYnc9GALdvVN91Xu9307NzR4d0D5Z2aVzprMwplQU/aHdFULXmvqXbxFU3ak5Dz2b5txdkdwR57IOn8+K1VK1yKtnJzOtLlETW7K2FxStzau27coE1rPiP3qChyPpdaVlVQv3z32pLNYzbyNsnSMRzfbswNcQ8Wt5Wrg86YYOLjcR0eM/VEtLh4XLKG/J37P7nZ5k76g6o/If5UsoeC3X5LwGRPxD+ecmWknW6/eFtqSDcWOyNKSLJYLDaH3aron/zmilR/0CB1iH8eHZms5nvcAm+xx11a13hxxV6fFUK6b9xjNWYi6aJeTY7PfC+dDNqDglXRXAqfgvNuJbc+7HTzRlt/rLsvELcIdsiXpYa3Dg+kM5LIGwRRlVwZxe4X5YS/1BcfV7RuV9wjSpotm7HKPqNkbAxN1eEOV8iAw4ukigavw2bxdEWLCXefT8shMcdxW38ONceli0i4qvHXU7C3cWH7ewO9Wixot4StrpiqJaxyvJQK9XXZwRru7+qqKj6vx2F2SO5KsX9D+q17D6yfKafS2W1FizAaidmk4VLPuN5xP289cxTO1kXV6OrZserAw2bj4NCgcmaw251zaTGXWuqx3Qi8aJG7Has3fenFKZ/aU4fhIi/ZGien7Afv3vRFr2Ax+Pp1tRjL1fTQAU40Nt7onMh2jwucOeMPbKmf9A+61rwwnHOKsH7qZ7ce2RjKZ7iwPRxJd6pSYiB6xDEwqI92iorwhs3G200lh9uv+Bp/2Xt9qWr09SQtmtXisNhtinYgocRVMSj7OhpfsSUT4ZDNYDOKRpM/EFetXQnJNqCFAsVkfm325d5gOuBQAyWrSTREk+2Yt0nutEvg9i7GwI2x303cVvxNdf64VrGRQq2H52gMDqCw5W14cmauATsMbRtMq8VE12Ki20jtMFOVlFIEMRGr4N20+zh8eAwecF9axRmMC8TcuJjeNgs7Lr2T3m2GPY2nm376LI4K9UWkfvzUR4LM4MDB7OBfbdkdf4bmxMK716A5tEjz1MK3yYtNmhfbNNNI8wL1P2zRnFy4cDkNrs+m4H7yDncc123hMzyQVc0teLatuz5A9woPTJ1JLzNf79OaGv37nC6cE0kGa9nr9kRicNxp90QmRpU+ANXjGa6VKY80Hg/1b4Lfasm6+zM8XklzYuHta9DsW6R5auGbOMQymmfaNFuQ5lnq09SiObnwr1fSEN/Cp1CHmGwnQfJpEz2Y/7OFTxf1Vz6cBNS5uuzA+wRCbQoIteMn4fsyyp12JmkcX6dIVlMVTuv6by9d5zbDXa09pUnD99j1m1txLT9ZpL9nGf31sJXVRet9xdX6/TWzArwhxGLjN20aOijquoGHeXxxDTxnuIVBAu8wNu35aOx2ZtDXfXWyFuIVIcYdxGhcSjBVk5mZsC67lHqieBmWY8usqqkSTupNhblWYTskm0ZG1o7vn7wprScTuslt2x/wvH3voR/ArVumRseUTl2PxBPgUaZN5kaNGsO1y4OfYHJvbsXzvKMtN3yEcgfJrprZjiI7WnJTg+AQtS+iMF2ZdUYmigGasrQEpsY4PHA0Zs5n7k7VHJhBkARlpVKSZWnRanFZ7FpuMXYtFSowWipM7u4Oix31gYJPe/NNKpE+2OHrUNZaYn6XOr2FCgPtvoSEyc6zdhvdBWrxGyYtWLEMgwZp11B7cz9QC9KaAc4wc7XbUzUns0EIy0rJjSw3t/+XWFZZ+ZeWRdxtcT2cn9DuOaRUKhmf9sgjLa6dNtOlw/DvWofHpW7f2jjVivE9DkmnnfgIibbjfekwzl2H7z1eAz3a8mkBvfXeG/HqepbG+29LabxwEzfCbMAJeBexuL1LmHDk7DJ8QIZbc4UvD22P46w9htrtkbu8PQaRr3HMI4R5BBfzCC75FJFjkEW+PMtkCZFTTBYPMbfbMCy14RYeuUvAyXgbByjLZAuQ5bKVmWwBfIZ38RneRTx5AhtZGv9imjTEYCO3EtPgNYgt8hpb6jtw8UF51S4r9zFuHcOdv1q50zQlyGEadbl8UOJWMSx7chX5KG+bGG/uxTQVTLOL9Wtu4min4ZaXSRt/BdPIDniWN5Ct6/Y3Pd+2ItF/AlNMIGQAAAB42p1UQU8TQRR+WwqGAPXghWhCJpoYTGDbgjFNOTWEEkhDQQgnL9N22J2y3W12Zml68w948GTi0Zj4F4w/wR+jN89+MzsttKgHu9mdb95873tv3pspEa17z8mj/HdGnx326IG35HABeMPhBXrsvXG4SA+9Dw4v0jPvp8NL9LCw6/AycNfhFVotvHN4FfZvDq/R+4UfDpfoSfEronjFZcw+2YgGe1j55XCBSl7J4QV6ifxzXKQNb+TwIjW9Lw4v0UbhkcPLwPsOr9B6QTm8CvtHh9e8p4XvDpfoVfEt7VNCQxpTSpICCkkTox2qUJVqQBewCIyHYEXUowFxijE/BT+hPta61qNBGcYQtpQU5ptWSUNZUZ3KeALoG0ZGHfLhlUCrbPXMilEZgy0s826sF0T7yXCcyiDUbKdSrbGLULDDJOoNeMxO06Qvupo1Mh0mqWKbodZDVS+XA6nDrON3k0F5wAPZ1eOhKAe5FyRn90NOjug1MgiQYwR7iqkIsogDVJFzxT57dEJtvAdAsyrb895Vv1Kp7J20Tw72XIDtqeB8QedcJ/ub8i+xbkor4Wf4dxNittRX8DRNSFBkCY62bbixzBreXVPKS5EqmcQsT41pfcUznYQy1mzzpurX/N17xdn+S263ezmGXdI1XoXYkwPCkYGADx1zeS1VaLrFtYDhftN9mzFNO+VLzCYnKD8//WkQRzadRqP7Rt3yL+zGzelr2iKZApwDXQGNbOrmJOeMyIYXYCl8e7BkwD1bZGbPqbDeR9TC2LZJxjPKrRmFLVj+1CLzsjuZzcadZMPRJrM7U+AOvmZl5O6LWTVxG/gHY7aodYzzt0tB1dzgIawKMZVV8+19DLDehkILJQqlYs0E3T5PrvSIp4LBEMmuiJXosSzuiZRp3K/zoxZrD0Wck1s5YYvdHp+qz6yY8zUy/IbLiHciwUa4fIyzZuOMcV1nkzupuqkcauUrGflJGpTbzRb9707+pfkb16QqlAAAeNptlgV4G0cahr/vjy3FVG7KzJRakkll7WqVOEnj1onrJoVUlteyHFmbCuw4bVNmxitfudf2yszMfGVmxrsrs7Tzp9b1OT+P5/1ndmbemX9WuwuB//f72Qjj//zJ4nJBCAUTUINaBBDERNShHg1oRBOWwtJYBstiOSyPFbAiJmElrIxVsCpWw+pYA2tiLayNdbAu1sP62AAbYiNsjE2wKTbD5tgCk7ElmhEq2yNoQSva0I4ORLEVtsY22BbbYXvsgBgs2IjDQQJTMBWdmIbpmIEdMRNd2Ak7oxuzMBs92AW92BVzMBe7YXfsgT0xD3shyQm4EIfgUNyJ0/AxDsNxOBrn4DJcxBochVdxME5mLQM4lkEcgfvxJifiXFyOb/ENvsMFuBKP4mFchT6kcAL68ThcPILH8DSewJN4Cp9gAM/hGTyLq5HG1zgRL+J5vIBBfIYvcCSGkMF8DCOLHM6Dh72xAHkUUEIRIxjFp1iIRRjDPtgP++IWnI/9sRgH4EB8ji9xG+tYzwY2solL4Vf8xqW5DJflcvid4PJcgSuSnMSVuDJX4apcjatzDa7Jtbg218EP+JHrcj2uzw24ITfixtyEm3Izbs4tOJlbspkh/ISXGGaELWxlG9vZwSi34tbchttyO27PHfAu3mOMFm3G6TDBKZzKTk7jdM7gjpyJa3Atu7gTd2Y3Z3E2e7gLe7krfsYveB8fcA7ncjfuzj24J+dxLybZxxT76XKAaQ4ywyHOZ5bDzOF2elzAvZnHh/iIBVzCIksc4SgXcoyLuA/35X5czP15AA/kQTyYh/BQHsbDeQSP5FE8msfwWB7H43kCT+RJPJmn8FSexr/xdJ7BM3kWz+Y5PJd/53k8nxfwQl7Ei3kJL+U/eBkv5xX8J6/kVbya1/BaXsfreQNv5E28mbfgZbzDW/EaXscbeBuv4C3extt5B+/kXbyb9/Be3sf7+QAf5EN8mI/wUT7Gx/kEn+RTfJrP8Fn+i8/xeb7AF/kSX8ZZfIWv8jW+zjf4Jt/i23yH7/I9vs8P+CE/4sf8hJ/yM37OL/glv+LX/Df/w//yG37L7/g9f+CP/Ik/8xf+yt/4u1R+rCITpEZqJSBBmSh1Ui8N0ihNspQsLcvIsrKcLC8ryIoySVaSlWUVWVVWk9VlDVlT1pK1ZR1ZV9aT9WUD2VA2ko1lE9lUNpPNZQuZLFtKs4QkLBFpkVZpk3bpkKhshetwPW7CzXgAN+BGPIiDcB8OxxV4SLaWbXAX7sYdsq1sJ9vje9lBYmKJLXFxJCFTZKp0yjSZLjNkR5kpXbITjpGdpVtmyWzpwemyC87EGfhKemVXXIyTcDYuxfE4BafiVpkjc2U32R334F7ZQ/aUebKXJKVPUtIvrgxIWgYlI0MyX7IyLDnxZIHsLXkpSFFKMiKjslDGZJHsI/vKfrJY9pcD5EA5SA6WQ+RQsbuDpVymuTnWrIwbWmFlRNmqjAZjw8lU3ssFk4aBWF/eHXEDSR/BmJf2cu78YNKwwU5l8qnS8EDWXdiQGo/r7X6vmEyl3FyxPvVnGIinkpUp+w3i5fmTxaCjQleFjhG6Puqd8YncP8Ogo8twDQOOmdH10TClalHpqkVNGZ8rPT5XZeOhcFgZaZhaNXpwPK6Z2pfM1wyWi0BnMZPtdwMZH8FOXX9G199p1p8xCevUlWYMpXOaZIYaplU5hsZjs4ZIm7K9cX4677q5bDLXn0kFZiRTpaIbyPrQLpbSDswwKcj6qJlR3l9NtlwEZppRuapRLa3KtsBMMyrnY4KTS09wc+lgl27J0y11mS15Ppq6Bku5dDJfGs4mS8Umr7oW6Da2fJWtVbfT2h7oNra8wSzTt+CjYVZVSgp/TUmbHk9bJDDbDC6afc6uHEqxcig95lBK5lB6dAcl3UGP2UHJR21PPpNL15YqZVPP/+ymVF0L9ujhlfRu761a42hVPKcqHhuPA3PNDhf5qJ87fvst+svt15EwjMZruwa9fK7W88sevyxVSnPdblHqCdqaW7td2aGMKmNKvU9sOzDF5C/tw7Q62svRXomQUrOeiNTHKrky20j+GQZjjmHSNWfYVcgmC4Mm9sZjf5Zwc7MypAwrI8oWZauyTdmu7FBGlTGlpbSVcaWjNLkNh9QfUn9I/SH1h9QfUn9I/SH1h9QfUn9I/SH1h7UeXlLX9YR1PRH1R9QfUX9E/RH1tOr87Xrd0rql81s6rx2tS+eTI27KG+6r8/NcifxrkeZwnf87qGppUbYp25UdTYOeNz/Z541U944pLaWtNLmMaA4jmsOI5iASDjWW7+w+N+uNjk8WVnVY1WFVhzuU5qAimphIpFWp/TUxkYj2j+p8MZOYiGUHev1MBEYNes3PbtRHXW9/xs27hUyhbnRJVBkXcqKOoXk5lhlShpURZYuyVdmmbFd2KKPKmNJS2sq4cok3YWip31K/pX5L/Zb6LfVb6rfUb6nfUr+lfkv9lvot9Vvqt9Rvq99Wv61+W/22+m312+q31W+r31a/rX5b/bb6bfXb6rfVH1d/XP1x9cfVH1d/XP1x9cfVH1d/XP1x9cfVH1d/XP1x9cfV76jfUb+jfkf9jvod9Tvqd9TvqN9Rv6N+R/2O+h31O+p31J9QfyIUmGNu4DEf2qr2hNoTak+oPaH2hG8vP12bA8OZnP9iLf+gc/2mtTVs2N7SlPKyXm64/D4rJvNjNdlMPmkuxdoCC9xCuVWrHcpoTb+XS9c4pbynLXFDc7+G9WMyrB+R4WZLV2LuwzJtpRkXMg/cMtvq3EKx/NlUdPvryutxM+nB4mBjcbD8zWPiQsNAZmRJ3Fgov7pzWpnoDi8ojpVX60+lz+wyo4HK6zfr5y7cbk6mTH9FiY5EojY2OZktNuijsPwfqoqbq+JoVRyp81+WVSPDVSPDVSPDVSMrcaTeX+/k/pw3rGGuNJyfMDBvoLb8Py8T8Mshv5ItN2dqKtXgwLwhL5MrlhuydZUU+BOYqDK+bsAr5bWtEvltmclZL5Wd3T29LpfJ6Qg/qlyd6GmTH1RaJi1w8xmvv/INUn4o9vuD7djsej/LZsEm9IcXMgvN8EpQaan3j8n0M6HfrzjqmX6VwF/WIjdvmkw03lYp/gA6UxR4AAEAAf//AA942h2Nyw0BYRhF770/K4mRaEAVKmESM+KxMaMIPVABFsKCHh0W58v53rKisaQFrPGR7DNc/FbxJ0s5dVYqadLgbTb4Njt8n4OSLh3ep8ePOckacCtgFeIEZjCnFt/9oPH0S0Pywp8rw78P1f/2lC379gW9ThB8AAB42pVUS2hcVRj+/n9up+mknTbJtNYY4xgyRYrG0kpRkULSxyKdsSEZtcaYdJxpNcm8kszkMUlcdOGiC2lVAoJoUOxCQhddFFdZiLhwIeIiiIgLERci4qKULMT63f+ePGxJUC73+875z3de/+NAAESwJB9AT51JphHNZypFdMCjHXfvop4kUIRo2YEw9mIfGtBIa11n/+k4njrZmY7juZO9xFNnO/vjSKbOJeNI955LxTGQ9kdz6d6zceRtPcFOx3WOdzmOOK53vNvxHsdRNGUy+QoqWR/nstlCGZdz+eHXcSVXLBVw9dJ4JosFGjJYzJeyeVw3XDK8afi54bLhl4ZfG35brBbGsVIazxXx40S1PIFfahfHS/iN91TzgP+3Wk/pB7/3kKHviRCaEMN+67cY7jUMG0YNAz9GDHcZ7jbcY9hgKx9Es/X2GT6MOLrQjV4MIEfvVfAm3sLbWMCHuI4buIVlfIVvsIKf8Cv+wKpA6qRRmqVNDstReVa6gnNLHU/oc7+dSOV7+SsY0Q7HT1u8RbsChV7VW27kO8crjn9w/LvjvwMOqeOw44jjqONGx22OTzjudzwY7ByqhT5zlp8drwYjXtQ7Gli8ZHBab9Bx2fEVN74ceN77wvX/pG87ENN2zKMglzGv4zIpUzItMzqkwzqqRS3rhFZ1Smd0lrNijOgxnMbz6ENN4vKotEtCL+iI5rWkY1rRSZ3Wms5RW2YkW3GIOxzHCZxBkhE7j0HGbAQhndU5nSeXdQxz5BmtoUqe0mlMkke54iF6fFhHiFWdJE5ohTikF4hFLRFfQIFYwG2rxBhzA0jwiyDFrz6IL3wfN9udQ1azKZ6fcZFr8pHZYDdT5mjgSW+TKiSLskjBx/IJZ3wqS9RvzFXupLhN323MuNcizvo4140whw+gRQeZbe/pq8T3dYB4TV8hvrNJ8bIpzpviJVO8aAquKu/Kgt2k2c4trAf/1DuJgpphj8P7VXWbVEfWMSyr6/aNtrJGvbWMoMVbi/g2I5yvcZuf+t9tW5XZUMWkH3va9rP2fS83I8J8GWNmTTMvRphlFWZdyTRB1APNLPNphjk0yrypMl+GtLhJ4+/VYHs1/ac1fe8ddm+Z77sD/ku1RbYLq+he/QPb6CNbVFg4ePO3mLXd6Fqs13Z/0DIwwWr9943u1xxjNW/2pB+Fgv8m8GdsuYZf830uj/wM8vQZrtVnlSVWNS02onxhoprlWDfu6CX275iim/9xU+zgqxCjug2Pac50PfqacUrfoL5HL/p1oxli9/rcsA5bO2Y3aOV/kK12evuI3eMRG00Ydhg+YfjkejusQbYn/gEAW/TYeNrNWw2Ujtedv/d5x2BMZt7v7+/vr1pVnUwmglixMpWJFVErasURzUEEq1acqQ4VVSsiiIqiKiJWRUTVimatnU4cx1q1ah1Va1O1ah1Vx1FSdebd3/0/933neT+Rxjn73nPv+5//83/u87/3d/8f987zMs4Yq2F92XimDBk6fBSrm/b87OnMy6rAZ5kM0+GLMyX3N2O6qS/Mms7MLz0/aypzvzT1paksCK5CcqosZFCqWDdWzeqYnflZHE/ojys9UBvZJFXasp165fbVkNMz/lcT8BdRw6rQD1FPnoQsZ1FVktWC25g5xpoyx3gYNYoaR50LHmccCiimNUK2pnfdcRZiESY/mSss75P5r7y/rrIKn8yVwrsrSncUP+2zfURP9yRX9LTMevm9NbPkHu5/856ecvruo1Nl7v9ahbu2Zs5nlmTW59+d6cjsKkL0tAavDlE/46zfI3b3M577Xw+fbbYKVm1Htq976S2zv8K12dnvzIS79rO+a81lLsAuK8nefBDI3G1esXZOi77U/og6XekZwv6L1xP1tERdh6V6KmXP2ZWp9qV91p87tsyuQqzueoeefa6fex/BZx2r9EC7snjk1vcxjb+MZ3sXM5KHWbykBt4KD6y/J61+/1n99oNa4/flxTo+t56u3K9EDr+OfC1K66TlFvV0pXSkLq3T/Wv6eX+6rPUBrgD4uMyb1F7R+qesh5LWdKXAQ3UUovHnr2lNL78g++34LL5CO2eVo8p9fDizKy3MU/a6Tn53YwFJ6ZmV9ZK0n3LnnuQnfMh0vchOawv6V+i7ipnpLyNaE1HiirjWg3UnCRt76J40dt3lulOje1fpRmNQy90/1ahu0jFbqmgMaskfXbYwOVL1o+4BeK4WfyxyXquKaimUWMk+BBpqtWJWTYSLWi05uuturtFNreJpNUAgW3sCC22tlzGgUhyoA27VNGcC+WzVzkOWo9e02au1EikuR67kZqx4NlSds7pmP1k9teOqztPQ8Dk6Lp1m1Nmaj/S91FKoF68AY96Y7q1WXtPamp0bQ5kZcmDf+mA/YnzBMtfMORnO6pQJOe8j9GIa76O1965PlZxnnvu2U8vyLFKMOoT1GMQqNOXd3w1rSrXqGiDcHdbkQtsdq07s3220j38Iqy47j71oLIWrXvvx3WUuvBrdtUWX54V4bkzZ0rUihZVx6Ngtr3T5p56yMBqD1mtVy9ILd/fKW4k6sseumj3fKFV1mCltFbqotWeJaqHVxWlWuySZhu6Rq0LjYk201x/KqwYgk63F675anrGI+epFyBtzVSdtXCEZLsem6sNJizr5dPVEqGuWsnTXjKgjLdS3SwdVT+2YanNxlZFH//w+VRRfu6KFXnK73Vcth3z+mC1FWN2tlsNIjSm98mrWO5ipLZ4jD+L2/WQ/9/+pQQlXuKYW9a+uGKWwJ7HixZqPoHDsxZLg9WZ9MK9fYo1YGU1sAFbXE2woVuKTrBnzOJw9BdSeRnGwv2aj4OlGs6/CU4xlz8H3TUcJsvkoIfZt9l3o9A9sOUuxVSh/wd5kb6Hv76N8mW1CaWCb2T+yh9mP2E42kO1hH7K/ZD9FeZL9K0oz+xk7zL7C/oP9Ak/6T3YOT7uEMp5dRvlb9geUCewWyvPsj+wOm8g6USbDDBT2dV7Fq9gU3p13Z1N5T96TTeO9eC/2Eq/jYTadR3mUvcrjPM4W8wbeyL7Dm/ijbCl/jD/GlvGBfCB7jT/OH2fL+RD+BHudD+PD2Bv8K/wrbCVv4S1sFX+GP8tW8zH8BfY9PoXPZO/wOXwue4/P421sF/8O/w77J/4ef4/t4x/wvexDvo//N/sX/hv+J/ZbpUapwdKsVWo5V+qUOq4oekXPdYpFsfIqxa7YebUSVEK8u/KM8gzvqTyrPMtrlOeV53kv5QXlBV7LFGUG2c8O3iEzHXEKtEvUgj3Z7DJ7tY7S+56ytFZ+yT3IdGjiTm9EKhfWWxKllvVD6YXV1Qi9m1Bq2KMo3dhjKApQb4ZnG42iw5oaizX4HEoV+xoKp1WjsIMonLWjcG7jNqbjDu5A6+IutGEgXE0IVxPC1UC4gXXjD/OHWRVvBNoKf4Q/gnubeBPol/nLuGsmMNTxucCwmrcBQ4Uv4Asg8wH/APfu5rtx74/5j0Hv4XtA/4T/BPReYFsl8AQivZReWHpAFfRDykOMsAVdr9SDBsKgDYoBNJCkWO6Gz9PT/kNkFF7EY07zUkXz0o3mRSfnZR6KHD+NsIpGWEUjrKIR6uTY1FGJkVTJkXyPr8VINvPNcjw6GomOxqCT2qt6qxqrunoVL3SNKBGKLAOhqREoCi2TQLARGj4KzZqBlLD9r7Gp0HATkGkHJg5gEYaGcWj2MPR6BFq9jDmeC40W8GVCI+jzNt8CfXZDmz3QZS806QU9HoIW9dDBoNgUJ7SIYL5mMf6FUemjrNsXprBa/nr92vqN2ABsQd1eL1dg/d76jyTVXn+Yvo/Vn6w/g+9PUC/Wyz1r/fX6TyXVqaesVl+j1+vhtfXw0vqgXp5I6Xvr+0mqST9IPxTfw/Uj9WMkb7x+kqSm6Gfo5+hb9Qv1S/TLJW+1fp2kNum3SmqHfrek9ukP0HeH/oj+uP6U/izo8/pL8upV/Q1J3c6mwIZqg9y/GIwGmQEbvAZ4fEMStY+hQfL6GwZLapihxTAK32MNEwyT8T0NdZZhrrw637BIUksNK+h7Dar8/4Rhs2GbpHYa9hj24/ug4ZDhqOSdMMizCsM5wwXDZcM1w03DHaPMLo09jHWSMhtlFmz0G6OSShv7GhvxPcA4xNhsHGEcDXqccaK8+qJxuqRmG+dJqs24WFLLjCsltda4UVJbjNvRYgUY9xol+sZ242HjMeNJUGeMnxgvGq8Yrxs/NXZiiw+0TTUm5BkmoG1ym5Dnm4C2qbcJSJuaUAeZgLNpOOpIE5A2jUedZJqCdgbqHFOr+gzTQhN8oAlom1abgLRpE+pW0w60wNi0zwR8TfCApiOm42hPoZ41nUcLjE1XTcDXdJsSBnhuM5A1G82EqtlrDpuTMp3oY24w9zcPNg8zt5hHmceaJ5gnm6eZZ5nnmuebF5mXmleY15jXmzebt5l3mveY95sPmg+Zj5pPmE+bz5kvmC+br5lvopc7FsXSwwJMLGaL0+K3AAlL2tLX0mgZAGqIpVlu/EdYgIVlHOpEy4togYRltgUoWNpQF1uWocX8W9ZaMPcWWJ5luwXzbtmL+pGlXfZy2CLPgCwnLbA8CyzPctECy7NcR/3UAhSsQMFaYwUKVqBgdVuBghUoWHtbgYIVKFgHWYGCFShYR1qBghUoWCdZp8gUdIZ1jrXVutC6xLrcutq6zrrJutW6w7rbus96wNphPWI9bj1lPWs9b71kvWq9Yb1tY7ZqW63NaLPbvLawLWnrY4O12PrbBtuG2VpAjbKNtU2wwUZs02yzbHNt80Etsi1Vn2ZbYVsjqfW2zWhhGbadtj1oYRe2g7ZDaGEZthM2WIXtHOoF22W011Bv2u4wZodl2HvYpVXYzXZpFXa/XVqFPW3vK6lG+wBJDbFLZOwj7KMlNc4uLcX+op0sxT7bPs/eZoeF2JfZV9rXEm+jfYt9ux3Y2PfaP7IDGTu8of2YHRZhByb2T+wX0QIT+3U7PKEdmDiqHMgLHcDEYXXACzqAiSPu6I0WmDiaHIPQAhPHcMdItMDEMd4B/+cAJo4ZjjlyE9zqWCipJQ7pCR2rHdITOjY5pCd07HBIT+jY5zggqQ7HEUkdd5yi77OO8w7yiY6rjhuO2+q22lntJE/oNDrtTuxPnfCBzqSzD1qg6uzvhP9zDkNtccL7OceiTnACWyf8n3OWE/7PCXydi5zA1wnP51zjhNdzAlnnNudOtEDWud95EO2h3OEdeT7nCfnXaec5SV1wXpbUNaf8n5nzjkt6QlcPV50LOwKX0+V3RV1pUH1dja4BriGgml0jXKNdsDbXRNeLrukuZGmuea4212IX7My10rXWtdEFG3Ntd+1y7XXBs7naXYddx1zA0HXG9Ynrogv4ua67PnV1qk9zV7llZu/Wu+UOxO12y5MMd9zdW1L93E2SGuQe6h7uHuke4x7vnuSe4p7hnuNudS90L3Evd692r3Nvcm9173Dvdu9zH3B3uI+4j7tPuc+6z7svua+6b7hvMzqg9VR7gIfHiGr3yPMCT9gjfZinj0dGJk9/j4xMnmGeFkmN8oyV1ATPZElN88yS1FzPfEkt8khr9KzwSGv0rPdsltQ2z05J7fHI/5Z6DnoIPc9RzwnPaQ/w8lzwXPZcI95Nzx2kNtj1euu8Zi9Zo9fvjXrTXliht9E7wDvE2+wdAXq0d5x3ohfe0DvdO9s7zwtP6F3sXeZd6YWleTd6t3i3e2Fn3r3ej7ztXliZ95j3pPeMF17Pe9F7xXvdC/vydvqqfDU+2JbP6nP7gj74Ol9vXz9fkw9W5RvqG+4b6YNF+cb7ZEbhm+KbIak5PhlxfAt9Muv2LfetltQ63yZJbfXtkNRu3z5JHfDJHNx3xHdcUqd8ZyV13nfJd9V3w3fbz/zV/lq/0W/3e/1hf9IPW/I3+Pv7B/thR36JlX9U7oCLMPNPQCXM/LAs/yz/XP98P3IK/1L/Cv8aP2zKv9m/zS+R8e/xS2T8B/3SrvxH/dKi/Kf95/wX/Jf91/w3/XcCSqBHoC4gz9oCuZO0AJ2sBeAzA+lA3wCyiAB8ZWBIAH4yALQCowOwpwA8ZODFgMwjArMD8wJtgcWBZYGVgbWBjYEtge2BXQHErABsKtAeAGYBRKzAyQA8YwC4BS4GYFkBRKvApwHYVhDRKlgTBHpBWFXQHYRFBYFgsHcQnjEIWwoOCsIzBhGtgiODwDGIaBWcFIRnDALF4JwgEAzCLwaXBJcHVwfXBTcFtwZ3BHcH9wUPBDuCR4LHg6eCZ4Png5eCV4M3grdDLCRP8EK1IXmCF7KHpG2FwiFpW6E+oYZQ/xCsKjQs1BIaFQIuoQmhyaFpIVhQaG5ofmhRCHYTWhGSNhNaH5I2E9oWImRCe0L7QwdDQCR0NHQidDp0LnQhdDl0LXQzdCeshHuE68LmsDPsD0fD6XDfcGN4QHhIuDk8Ijw6PC48MfxieHp4dnheuC28OLxM7Tm8MrxWUhvDWyS1PbwrvDeMGQ+3hw9L3rHwSUmdCX8iqYthmaOHr4dljh7ujMiT50hNBChEgELEHQEKEaAQ6R0BChGgEBkUAQoRoBAZGQEKEaAQmRQBChGgEJkTAQoRoBBZEkFkisCCIusisJ4IYlJkRwTxKAK7iRyIwGYiiESR4xFEoQisJXI+gigUuYp6IwKvJ4J2tDoKrxcFOlF7FMhEEYWiySgsJwp/F+0fBSpRWE+0JQq7iQKZ6IQorCUKW4nOiiIKReHboouiwCeKKBRdE4XFRIFOdFsUyEQRhaL7o4hCUWATPRqFpUSRX0TPRS+gRdSJXosi4kSRX8SUGHxZDPlFzByDtcRgJ7FoDPEmBn8Wa4zBSmKIObHmGKwkhlwiNi4GK4nBr8WmxxB5YsjyYm0xZBExoBhbGQOCMWR5sS0xZNcxeLjY3hjQiyGXiB2OwV5iwC52JgbcYsglYldisJcYEIt1xoFWnCJRXP5PJW6Nu+PBeDzeO94v3hQfFB8aHx4fGR8THx+fFJ8SnxGfE2+NL4wviS+Pr46vi2+Kb43viO+O74sfiHfEj8SPx0/Fz8bPxy/Fr8ZvxG8nWKI6UZswJuwJbyKcSCb6JBoS/RODE8MSLYlRibGJCYnJiWmJWYm5ifmJRYmliRWJNYn1ic2JbYmdiT2J/YmDiUOJo4kTidOJc4kLicuJa4mbiTtJJdkjWZc0J51JfzKaTCf7JhuTA5JDks3JEcnRyXHJickXk9OTs5Pzkm3JxcllyZXJtcmNyS3J7cldyb3Jj5LtycPJY8mTyTPJT5IXk1eS15OYjWRnqipVk8I8pKwpdyqYwopN9U71SzWl4PlTQ1PDUyNTWKup8alJqSkprNPUnFRramEKnj61PLU6tS6FFZramtqR2p3C6kwdSHWkjqTgy1OnUmdT51NYl6mrqRup2wCbpavTtWljGvuItDcdTifTWI3phnR/FYX04PQwSbWkpS9Pj03L94bSk9PTJDUrLfeI6flpuUdML02v6DrZSa9Jr09vzv21Lb0zjdWaFv6d8yXKcLSvshGMKyfF2QY/R5xzdPVdot8legPRG+i88ziPgl7VxVF+gM0R5/OJM5/kPyb6Y6LXEr1Wpfkh9LBScNhK6u0X4pyf3yaZ/prnfosNRfsNolcRfx/d9UPeBPoQ8Q9pdFP1fJ3ot0irP/CToP+NWdCu5mm0i+jqoqLRtRG9jWitzHNEj1NpGvUCZTDpJvr/H7raIU7lpeRzxE8LWknTXTOJP7OI/pYco6DH8oOipXuHshrQg4gziK6qtNpbHT+Ctpkk/456uKxY0T5KMo8Sv47ZMEvXBIddo7sep6uPE/0mv4P2CZr5f1eCaL9N/Ab5lBrBUWZn+YzGyL6tzjnJqHPeTHSDRkPSVpmI2eJKHKm/4HxSMBb1LtKfe2ksdILOnyH+QHriB2KG2S+Jr1fEavkt71H0FNBKI81VjPgxkn+f6PeJDhIdJDpE9K+JVufqi+rK4e+hfYNtwFN+piRFC+04f4Q/Dfr3ipjJT/nq8k9nH9JdH9JdzfxTtF/gXyXOfmFfuiEF9rVe16eAs0TpLOToaotkLhTJFPSsDKdVN1xoWPUU2aO6wjdkwsKCSF5rre+SJlrOKtIkn3Mhn8NWin60lsu2in7yOCtFPwWcCwX2XuxPNtCopRWTtuWs+G3SvNzV12kUZa/SU8rfe6HC1Veltyx9dYGuqaRneFMXLclfoNwowz9Tkv8qjVr1HmOVfQUeY7qypYAzVpzCFnDaijhjijgFPSsGWu0GjaUHaUU9SpIan8OfJh20nEdJh3zOmAJP9Yroh71CK+EdVo/2NdFPHucV0U8BZ0w+hzfT6KRHIt3KeaRRpGdZf0U6l7/aVvHqmApXGyr7yTydu/xbvrZd/Hw9tfwxJfkPUz+qDwyRzK9lDnC1wLeMVSYWrIoluh5FMq2FMkW5RHFc+ymtYdXG1XGlZSzuzPHVcan8d8geVf4A0lnKkz5Z+dYcfwPxtV6lXMQs9j/lJFfR/Gi94qM0P9pVvarruTmZ1gKZNwp9KX+k0BZK5FRFkf2envUxzaeafT1O86lG/4/p3iy/Ncf/Gemm8geSVo9rsrifdx6h9XMrx19L/WsyOv6msjM/ryjO+krkHiuFN86LFK8I+8qz9JVi/gtkJhbKiHEVyLQW9VOQc7K/L/QhbEVhnGKvUB6llVH5atZ0m+aBsla2nHyUNrf8bkafs/qGThEvvkvrvyibZd/TjSmZcanZ7waaf628mqG9Jvgl5Iv7L5fRPWj5DzT2Pp7svUGTsX9A41JzwkFEb9DYdTOtzwaZ1V+tEJcHkT2W86uvU5/l722teG+fivdWiCO6NWKMuk2Uj20Wdqr8irzxrwRHt5PsdDX1r+47+pIFMc1+ZDfNiZon1xDdRmNR5b3K4pz8WupHXXtfJ60Gyr1MZ47/DPmBgZo9zjyK42ru/WWiF1H/WfnWnLy6uxlJMrQPkln6z4mjzdKfox40O6ay+XzR3qqs5AKdUjIjyo/FXZFuAXmzUvITy8h3lpFvLS1fJtMrF8EXlMkAB5WJ7OX2mGX2INhvdub2m+8Tyu/L/WZnLmMMEf/Xkn8hx19FK0fdh6r5m7oz+mbXHMo4pfK/RfiqfDXufFGz736d1nZPpXeBpQzRaD6H7y2wsrVdO27lj8rW3HgbuvaYyhzFmR2vrgd5e4raapsXr7WnBPfrr7QnCdodbrm4Wfm0oeK+WNeDnltuFOur4gXZ1HTd+oLMfILATrvjUyICQZmrvyV3mqV1a66YA6/X6QufriwqyvduFeWEUwtk3qV+tLnK09RPfs5zqyifmVqwR9gq+smLy6+Jfgri+62iHGBqwR7hbdKnHF6jSLeysYD0LB8Lpla4dzU9N+vnl2v8/C2NP/9Gjv+mrrqkB8jXUOsxflfGw0wtKa/6/+UUU1T//yTRqk+erNIan/wb4mh98uu6xRVn43bFqLqz0r26YIV7X6v43AEVnzuTsoisP5yY9YdsOeV4i0qcZWl8rDiRyPnYfVkfqwwiG0zLLHpLjp8W/jMnPybnk+UuKfNc4S4p00uz22opsqz2QuurWlMoU1XzwGSChTK6NUXeoLNwXOr5g3ZcVdOL+jlf9KzPS2Z8kcyJ0rvaPJ1bC3SWOzLi5O3IiJPdkbUUebD2ol1bbZFMW6EMYZEnQ1g8GJlgoQxhmu+ZOwvHrp7ndI0dO6+WIq/bXnrnJe7K7p4EnY2e1FvZ6ElXS/mQlor+p72S/6H5KXsvzdX/v3uDFX3mmoqRq7PSPKvnSGXmWT1rLZfXjdFkEcV5nXqKWzYn1GTLpe5tqXhve8V7ayve21bpXjWPFbNRPo+luSq+V+btdLVE3i5nWLsvGFImareXjNo7unZ5eXlyc9fOWpsnY1c4pHReTTNfSr6ljHx7GfnaMvJtpeXVPJ/moUSer86qRn4m6Z+N1/s0+xf6Pxr5EPmfHaJnkv5Z+fYuedIzy2/L8qv+mc9Hu4a9C6z/xFPwSz/mN0qcCynMyiJMvOn3BHsKeD/NxrMQm8ZeYl9iM1G+zOaiNLBvojyMXcVbrJF9n22C3NtsN3uWfinxAvspO8imsnZ2G3fc4b3Ydl4HjPdjTT3Ffsef5gvZLf4+Skr8AoGnsV8xIFd8RGniy5SXlJf4cvFLF/4G38GYMlr5G+ZWnlPGMz/9jkT4X3HSJt6zFW9xbEcV71nvRRXv2Yr3PcWbHOJtT/EexxlU8RbHRfR5BaO8Lv7PhSr8RJU4bcCTRDwUOxE3q+JB8eY6am/UfpiWJlSsTz4UFfsPPhJ1DOp41EmMZxIClc4Nos0wag3iFCPTT3ifTDVx7ILTuZufA/0YXa2lu35JV8NEf0xXq8W5YcZKWdpoPhm0eOebZ0xilXTuJrqW0CLMMlOpraZWvBPOOy+x/0V7kiH/69zPfoT2Nu+Jqz3oWWpbrWl1XW3nna6WjRb/k2aTWS3rTr9hdrMgi7PerJ/QKTNc6JSxCJ2IttL53MvijCRTnRkstMlMEL+Y4z/k70Ctd5H5dyv6u7v8JZ/AVbw71AdV2JI4ZRx817FrRs3OskOEbS0idR/00R/3D2MtbBQbyyZgFNPYLKzb+ch8l7IVbA1bzzazbWwn1isQFPbW+YHwLBkmIkTGoCwVPStzxFNEnpSxihy6czdxHlOOCk3orl/SXWEhA3ozyb9LV2+J2Ra5mmyrZXtCzLaIf2rbeUdtEdXUNf8Duebrac2bynDFr9OwApl4L0+8fSzeyhPvuop38sSbruKNPPGeq3gfT7zlKs7mxDuu4l08MZPiTTzxfqt4D0+83SrewhPvtop38M4/yFV93+vQjbXH6TennH6nOoW4nG/KtepvD2Et/wdC486hAAAAAAABAAAAAOKfK0YAAAAA2zyh3AAAAADbPiOs') format('woff');\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n}`;\nexport const b612Font = `@font-face {\n font-family: 'B612';\n src: url('data:font/woff2;charset=utf-8;base64,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') format('woff2'),\n url('data:font/woff;charset=utf-8;base64,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') format('woff');\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n}`;\n","export let fontSheet: CSSStyleSheet | null = null;\n\nif (typeof CSSStyleSheet !== \"undefined\" && \"replaceSync\" in CSSStyleSheet.prototype) {\n fontSheet = new CSSStyleSheet();\n fontSheet.replaceSync(`\n@font-face {\n font-family: 'Goldman';\n src: url(\"../fonts/goldman-latin-400-normal.woff2\") format(\"woff2\");\n font-weight: 400;\n font-style: normal;\n }\n@font-face {\n font-family: 'B612';\n src: url(\"../fonts/b612-latin-400-normal.woff2\") format(\"woff2\");\n font-weight: 400;\n font-style: normal;\n}\n`);\n}\n","import { goldmanFont, b612Font } from \"../styles/fontBase64\";\nimport { fontSheet } from \"../styles/fontSheet\";\n\nlet fontsInjected = false;\n\nexport class WavelengthTitleBar extends HTMLElement {\n constructor() {\n super();\n\n const shadow = this.attachShadow({ mode: \"open\" });\n\n if (fontSheet) {\n shadow.adoptedStyleSheets = [fontSheet];\n } else {\n const fallbackStyle = document.createElement(\"style\");\n fallbackStyle.textContent = `\n @font-face {\n font-family: 'Goldman';\n src: url(\"../fonts/goldman-latin-400-normal.woff2\") format(\"woff2\");\n font-weight: 400;\n font-style: normal;\n }\n @font-face {\n font-family: 'B612';\n src: url(\"../fonts/b612-latin-400-normal.woff2\") format(\"woff2\");\n font-weight: 400;\n font-style: normal;\n }`;\n shadow.appendChild(fallbackStyle);\n }\n\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(\"title-bar\");\n\n const title = document.createElement(\"div\");\n title.classList.add(\"title\");\n title.textContent = this.getAttribute(\"title-text\") || \"Default Title\";\n\n const subtitle = document.createElement(\"div\");\n subtitle.classList.add(\"subtitle\");\n subtitle.textContent = this.getAttribute(\"subtitle-text\") || \"Default Subtitle\";\n\n const textColor = this.getAttribute(\"text-color\") || \"#34649b\";\n const shadowColor = this.getAttribute(\"shadow-color\");\n\n const style = document.createElement(\"style\");\n style.textContent = `\n :host {\n display: block;\n font-weight: 400;\n color: ${textColor};\n text-align: left;\n }\n\n .title {\n font-family: \"Goldman\", sans-serif;\n font-size: 3.75rem;\n ${shadowColor ? `text-shadow: 0.313rem 0.313rem 0.375rem ${shadowColor};` : \"\"}\n -webkit-text-stroke: 1px black;\n letter-spacing: 0.07em;\n user-select: none;\n }\n\n .subtitle {\n font-family: \"B612\", sans-serif;\n font-size: 1rem;\n margin-left: 0.313rem;\n user-select: none;\n }\n`;\n\n shadow.appendChild(style);\n wrapper.appendChild(title);\n wrapper.appendChild(subtitle);\n shadow.appendChild(wrapper);\n }\n\n connectedCallback() {\n if (!fontsInjected) {\n const style = document.createElement(\"style\");\n style.textContent = `\n ${goldmanFont}\n ${b612Font}\n `;\n document.head.appendChild(style);\n fontsInjected = true;\n }\n }\n static get observedAttributes() {\n return [\"title-text\", \"subtitle-text\", \"text-color\", \"shadow-color\"];\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n if (oldValue === newValue) return;\n\n const titleElement = this.shadowRoot?.querySelector(\".title\") as HTMLElement | null;\n const subtitleElement = this.shadowRoot?.querySelector(\".subtitle\") as HTMLElement | null;\n\n switch (name) {\n case \"title-text\":\n if (titleElement) titleElement.textContent = newValue;\n break;\n case \"subtitle-text\":\n if (subtitleElement) subtitleElement.textContent = newValue;\n break;\n case \"text-color\":\n if (titleElement) titleElement.style.color = newValue;\n if (subtitleElement) subtitleElement.style.color = newValue;\n break;\n case \"shadow-color\":\n if (titleElement) {\n if (newValue) {\n titleElement.style.textShadow = `0.313rem 0.313rem 0.375rem ${newValue}`;\n } else {\n titleElement.style.textShadow = \"\";\n }\n }\n break;\n }\n }\n}\n\nif (!customElements.get(\"wavelength-title-bar\")) {\n customElements.define(\"wavelength-title-bar\", WavelengthTitleBar);\n}\n","/**\n * Helper Functions\n * @param a\n * @param b\n * @returns\n */\nexport function add(a: number, b: number): number {\n return a + b;\n}\n","/**\n * Helper Functions\n * @param a\n * @param b\n * @returns\n */\nexport function concat(a: string, b: string): string {\n return a + b;\n}\n","import React, { useEffect, useRef } from \"react\";\nimport \"../../../web-components/wavelength-button\";\n\nexport interface WavelengthButtonProps extends React.HTMLAttributes<HTMLElement> {\n variant?: \"contained\" | \"outlined\" | \"text\";\n size?: \"small\" | \"medium\" | \"large\";\n height?: string;\n width?: string;\n margin?: string;\n padding?: string;\n colorOne?: string;\n colorTwo?: string;\n fontSize?: string;\n disabled?: boolean;\n borderRadius?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n children?: React.ReactNode;\n href?: string;\n target?: \"_self\" | \"_blank\" | \"_parent\" | \"_top\";\n boxShadow?: string;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const WavelengthButton: React.FC<WavelengthButtonProps> = ({\n variant,\n size,\n height,\n width,\n margin,\n padding,\n colorOne,\n colorTwo,\n fontSize,\n disabled,\n borderRadius,\n onClick,\n children,\n className,\n href,\n target,\n boxShadow,\n style,\n ...rest\n}) => {\n const ref = useRef<HTMLElement>(null);\n const latestOnClick = useRef<typeof onClick>();\n\n useEffect(() => {\n latestOnClick.current = onClick;\n }, [onClick]);\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n\n const setAttr = (name: string, value?: string | boolean) => {\n if (value === undefined || value === null || value === false) {\n el.removeAttribute(name);\n return;\n }\n if (typeof value === \"boolean\") {\n el.setAttribute(name, \"\");\n } else {\n el.setAttribute(name, value);\n }\n };\n\n setAttr(\"variant\", variant);\n setAttr(\"size\", size);\n setAttr(\"height\", height);\n setAttr(\"width\", width);\n setAttr(\"margin\", margin);\n setAttr(\"padding\", padding);\n setAttr(\"color-one\", colorOne);\n setAttr(\"color-two\", colorTwo);\n setAttr(\"font-size\", fontSize);\n setAttr(\"border-radius\", borderRadius);\n setAttr(\"href\", href);\n setAttr(\"target\", target);\n setAttr(\"box-shadow\", boxShadow);\n\n // disabled is boolean-attribute semantics\n if (disabled) el.setAttribute(\"disabled\", \"\");\n else el.removeAttribute(\"disabled\");\n }, [variant, size, height, width, margin, padding, colorOne, colorTwo, fontSize, borderRadius, disabled, href, target, boxShadow]);\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n\n const handleClick = (e: Event) => {\n if (el.hasAttribute(\"disabled\")) return;\n\n const fn = latestOnClick.current;\n\n if (fn) {\n fn(e as unknown as React.MouseEvent<HTMLElement>);\n }\n };\n\n el.addEventListener(\"click\", handleClick);\n return () => {\n el.removeEventListener(\"click\", handleClick);\n };\n }, []);\n\n return (\n <wavelength-button ref={ref} className={className} style={style} {...rest}>\n {children}\n </wavelength-button>\n );\n};\n\nWavelengthButton.displayName = \"WavelengthButton\";\n\nexport default WavelengthButton;\n","import Button from \"@mui/material/Button\";\nimport { styled } from \"@mui/system\";\n\nimport React, { ReactNode } from \"react\";\n\n// These are the properties we can customize\ninterface ButtonProps {\n onClick?: any;\n children?: ReactNode;\n}\n\ninterface IconProps {\n text: string;\n numIcon?: string;\n children: ReactNode;\n active?: boolean;\n width: string;\n height: number;\n fontsize: number;\n}\n\nfunction drawNum(numIcon: string) {\n if (parseInt(numIcon) > 0) {\n return (\n <>\n <circle cx=\"21\" cy=\"8.25\" r=\"4.5\" fill=\"#FF0A0A\" />\n <text x=\"18.25\" y=\"12.15\" fontSize=\"11\" fill=\"white\">\n {numIcon}\n </text>\n </>\n );\n }\n}\n\nfunction drawActive(active: boolean) {\n if (active === true) {\n return <rect x=\"-20\" width=\"117\" height=\"10\" fill=\"lime\" rx=\"10\" ry=\"10\" />;\n }\n}\n\nexport function ButtonIcon({ text, numIcon = \"0\", children, active = false, width, height, fontsize }: IconProps) {\n return (\n <>\n <div>\n <div style={{ width: width, height: height }}>\n <svg width=\"97%\" height=\"100%\" viewBox=\"0 0 35 35\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g mask=\"url(#mask0_234_4026)\" transform=\"translate(2, 2)\">\n {children}\n {drawNum(numIcon)}\n </g>\n </svg>\n </div>\n <div>\n <p style={{ color: \"white\", fontSize: fontsize, fontFamily: \"b612\", marginTop: -3, marginBottom: -8, padding: 0, textTransform: \"capitalize\" }}>{text}</p>\n <svg width=\"50px\" height=\"10px\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"translate(-25, 0)\">{drawActive(active)}</g>\n </svg>\n </div>\n </div>\n </>\n );\n}\n\nfunction renderButtonIcon(children: ReactNode) {\n for (const c of React.Children.toArray(children)) {\n const obj = c as { type: { name: string } };\n if (obj.type.name === \"ButtonIcon\") {\n return c;\n }\n }\n}\n\ninterface ButtonMenuProps {\n children: ReactNode;\n}\n\nexport function ButtonMenu({ children }: ButtonMenuProps) {\n return <div style={{ background: \"transparent\" }}>{children}</div>;\n}\n\nfunction renderButtonMenu(children: ReactNode) {\n for (const c of React.Children.toArray(children)) {\n const obj = c as { type: { name: string } };\n if (obj.type.name === \"ButtonMenu\") {\n return c;\n }\n }\n}\n\nexport function WavelengthDropdownButton({ children, onClick }: ButtonProps): React.JSX.Element {\n const TestButton = styled(Button)(() => ({\n height: \"45px\",\n width: \"20px\",\n color: \"#FFFFFF\",\n borderRadius: \"30px\",\n background: \"#2B6DBA\",\n borderColor: \"#4E4E4E\",\n borderWidth: \"10px\",\n }));\n\n return (\n <>\n <TestButton onClick={onClick}>\n {renderButtonIcon(children)}\n <br />\n {renderButtonMenu(children)}\n </TestButton>\n </>\n );\n}\n\nWavelengthDropdownButton.displayName = \"WavelengthDropdownButton\";\n\nexport default WavelengthDropdownButton;\n","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n wrapper[0] = styles;\n return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\n\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if ( /*#__PURE__*/React.isValidElement(source) || !isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if ( /*#__PURE__*/React.isValidElement(source[key])) {\n output[key] = source[key];\n } else if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import PropTypes from 'prop-types';\nconst responsivePropType = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object, PropTypes.array]) : {};\nexport default responsivePropType;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {},\n nested\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme,\n nested: true\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n if (!nested && theme.modularCssLayers) {\n return {\n '@layer sx': removeUnusedBreakpoints(breakpointsKeys, css)\n };\n }\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * <Box sx={theme => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles, internal_serializeStyles as serializeStyles } from '@mui/styled-engine';\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport capitalize from '@mui/utils/capitalize';\nimport getDisplayName from '@mui/utils/getDisplayName';\nimport createTheme from './createTheme';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nfunction shallowLayer(serialized, layerName) {\n if (layerName && serialized && typeof serialized === 'object' && serialized.styles && !serialized.styles.startsWith('@layer') // only add the layer if it is not already there.\n ) {\n serialized.styles = `@layer ${layerName}{${String(serialized.styles)}}`;\n }\n return serialized;\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref, layerName) {\n let {\n ownerState\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, _extends({\n ownerState\n }, props), layerName));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = _objectWithoutPropertiesLoose(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props(_extends({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n const variantStyle = typeof variant.style === 'function' ? variant.style(_extends({\n ownerState\n }, props, ownerState)) : variant.style;\n result.push(layerName ? shallowLayer(serializeStyles(variantStyle), layerName) : variantStyle);\n }\n });\n return result;\n }\n return layerName ? shallowLayer(serializeStyles(resolvedStylesArg), layerName) : resolvedStylesArg;\n}\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded3);\n const layerName = componentName && componentName.startsWith('Mui') || !!componentSlot ? 'components' : 'custom';\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || isPlainObject(stylesArg)) {\n return props => {\n const theme = resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n });\n return processStyleArg(stylesArg, _extends({}, props, {\n theme\n }), theme.modularCssLayers ? layerName : undefined);\n };\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, _extends({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, _extends({}, props, {\n theme\n }), theme.modularCssLayers ? 'theme' : undefined);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import { Autocomplete, TextField, TextFieldVariants } from \"@mui/material\";\nimport { useState } from \"react\";\n\ninterface WavelengthAutocompleteProps {\n id?: string;\n label: string;\n items?: any;\n variant?: TextFieldVariants;\n width?: number;\n borderColor?: string;\n hoverColor?: string;\n textColor?: string;\n onChange?: (selectedValue: string) => void;\n}\n/**\n * Returns the Best Matching String from a List; Defaults to the first item if no good match is found\n * @param searchString - the string we want to look for\n * @param choices - the list of strings we get to choose from (must be greater than 0)\n * @returns - a string with the \"best\" match, or \"\" if no match is found\n */\nexport function findBestStringMatch(searchString: string, choices: string[]): string {\n for (const item of choices) {\n if (item.toUpperCase() === searchString.toUpperCase()) {\n return item;\n } else if (item.toUpperCase().includes(searchString.toUpperCase())) {\n return item;\n }\n }\n\n // Default: Return the first item in the list\n if (choices.length > 0) {\n return choices[0];\n }\n // Returns \"\" if no good match is found\n return \"\";\n}\nexport function WavelengthAutocomplete({ label, width = 300, variant = \"outlined\", items = [], onChange, borderColor, textColor, hoverColor, id }: WavelengthAutocompleteProps) {\n const defaultItem = items.length > 0 ? items.sort()[0] : \"\";\n const [selectedValue, setSelectedValue] = useState(defaultItem);\n borderColor = borderColor ? borderColor : \"#FFFFFF\";\n hoverColor = hoverColor ? hoverColor : \"blue\";\n textColor = textColor ? textColor : \"#FFFFFF\";\n return (\n <>\n <Autocomplete\n id={id}\n sx={{\n width: { width },\n \"& .MuiAutocomplete-popupIndicator\": { color: borderColor },\n \"& .MuiAutocomplete-clearIndicator\": { color: borderColor },\n }}\n value={selectedValue}\n options={items.sort()}\n autoComplete={true}\n openOnFocus\n onChange={(event, value) => {\n if (value) {\n const bestMatch = findBestStringMatch(value, items);\n setSelectedValue(bestMatch);\n if (onChange) {\n onChange(bestMatch);\n }\n }\n }}\n onClose={(event: any, reason: string) => {\n if (reason === \"blur\") {\n const bestMatch = findBestStringMatch(event.target.value, items);\n setSelectedValue(bestMatch);\n if (onChange) {\n onChange(bestMatch);\n }\n }\n }}\n renderInput={(params) => (\n <TextField\n variant={variant}\n label={label}\n {...params}\n sx={{\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}` },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n InputProps={{ ...params.InputProps, style: { color: textColor } }}\n />\n )}\n />\n </>\n );\n}\n\nWavelengthAutocomplete.displayName = \"WavelengthAutocomplete\";\n\nexport default WavelengthAutocomplete;\n","import React, { ReactNode } from \"react\";\nimport DownloadIcon from \"@mui/icons-material/Download\";\nimport { WavelengthButton } from \"./WavelengthButton/WavelengthButton\";\ninterface DownloadProps {\n fileLoc: \"local\" | \"api\";\n fileURL: string;\n fileName: string;\n button?: ReactNode | React.JSX.Element;\n id?: string;\n}\n\nexport function WavelengthFileDownloader({ fileLoc, fileURL, fileName, button, id }: DownloadProps) {\n if (fileLoc === \"local\") {\n const onButtonClick = () => {\n const pdfUrl = fileURL;\n const link = document.createElement(\"a\");\n link.href = pdfUrl;\n link.download = fileName; // specify the filename\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n return (\n <>\n {button === undefined && (\n <WavelengthButton variant=\"outlined\" onClick={onButtonClick} id={id}>\n {fileName}\n <DownloadIcon sx={{ marginLeft: \"8px\" }} />\n </WavelengthButton>\n )}\n\n {\n <div id={id} onClick={onButtonClick}>\n {button}\n </div>\n }\n </>\n );\n }\n}\n\nWavelengthFileDownloader.displayName = \"WavelengthFileDownloader\";\n\nexport default WavelengthFileDownloader;\n","import { Height } from \"@mui/icons-material\";\nimport { fontWeight, height, padding } from \"@mui/system\";\nimport React from \"react\";\n\nimport styled from \"styled-components\";\n\nexport interface StyledButtonPropsTwo {\n type:\n | \"channel_one_transparent\"\n | \"channel_one_launch\"\n | \"channel_one_request\"\n | \"channel_one_pending\"\n | \"channel_one_disabled\"\n | \"ewdms_tertiary\"\n | \"ewdms_primary\"\n | \"ewdms_secondary\"\n | \"brewery\"\n | \"default\";\n styles?: React.CSSProperties; // Allow overriding styles (e.g., background color)\n hoverstyles?: React.CSSProperties;\n activestyles?: React.CSSProperties;\n disabledstyles?: React.CSSProperties;\n icon?: React.ReactNode;\n disabled?: boolean;\n children: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nconst ButtonPresets = {\n default: {\n width: \"130px\",\n height: \"45px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"8px\",\n border: \"none\",\n fontSize: \"\",\n fontWeight: 600,\n color: \"\",\n margin: \"\",\n padding: \"\",\n backgroundColor: \"\",\n hover: {\n backgroundColor: \"\",\n color: \"\",\n cursor: \"pointer\",\n width: \"\",\n height: \"\",\n border: \"\",\n fontSize: \"\",\n },\n disabled: {\n cursor: \"\",\n opacity: \"\",\n },\n\n active: {\n backgroundColor: \"\",\n boxShadow: \"\",\n transition: \"\",\n border: \"\",\n },\n },\n ewdms_primary: {\n width: \"130px\",\n height: \"45px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"8px\",\n border: \"none\",\n fontSize: \"16px\",\n fontWeight: 600,\n color: \"white\",\n margin: \"\",\n padding: \"12px 32px\",\n backgroundColor: \"rgba(26, 128, 131, 1)\",\n hover: {\n backgroundColor: \"rgba(38, 186, 190, 1)\",\n color: \"rgba(247, 247, 249, 1)\",\n cursor: \"pointer\",\n width: \"\",\n height: \"\",\n border: \"\",\n fontSize: \"\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n\n active: {\n backgroundColor: \"#67a8aa\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n ewdms_secondary: {\n width: \"130px\",\n height: \"45px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"8px\",\n border: \"1px solid rgba(26, 128, 131, 1)\",\n fontSize: \"16px\",\n fontWeight: 600,\n margin: \"\",\n color: \"rgba(26, 128, 131, 1)\",\n padding: \"12px 32px\",\n backgroundColor: \"transparent\",\n hover: {\n backgroundColor: \"rgba(26, 128, 131, 0.1)\",\n color: \"rgba(26, 128, 131, 1)\",\n cursor: \"pointer\",\n width: \"\",\n height: \"\",\n border: \"\",\n fontSize: \"\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"#bad7da\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n\n ewdms_tertiary: {\n width: \"130px\",\n height: \"45px\",\n display: \"flex\",\n margin: \"\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"8px\",\n border: \"none\",\n fontSize: \"16px\",\n fontWeight: 600,\n color: \"rgba(26, 128, 131, 1)\",\n padding: \"12px 32px\",\n backgroundColor: \"transparent\",\n hover: {\n backgroundColor: \"rgba(26, 128, 131, 0.1)\",\n color: \"rgba(26, 128, 131, 1)\",\n cursor: \"pointer\",\n width: \"\",\n height: \"\",\n border: \"\",\n fontSize: \"\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"#445C71\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n\n channel_one_launch: {\n width: \"62px\",\n height: \"24px\",\n display: \"flex\",\n margin: \"\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"20px\",\n border: \"none\",\n fontSize: \"10px\",\n fontWeight: 700,\n color: \"white\",\n padding: \"0px 0px\",\n backgroundColor: \"#24A818\",\n hover: {\n height: \"28px\",\n border: \"0.5px solid white\",\n fontSize: \"12px\",\n width: \"72px\",\n backgroundColor: \"\",\n color: \"\",\n cursor: \"pointer\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"#6FC36E\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n channel_one_request: {\n width: \"100px\",\n height: \"24px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n margin: \"\",\n justifyContent: \"center\",\n borderRadius: \"20px\",\n border: \"none\",\n fontSize: \"10px\",\n fontWeight: 700,\n color: \"white\",\n padding: \"0px 0px\",\n backgroundColor: \"#1D31E4\",\n hover: {\n height: \"28px\",\n border: \"0.5px solid white\",\n fontSize: \"12px\",\n width: \"110px\",\n backgroundColor: \"\",\n color: \"\",\n\n cursor: \"pointer\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"#5D78ED\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n channel_one_pending: {\n width: \"62px\",\n height: \"24px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"20px\",\n border: \"none\",\n fontSize: \"10px\",\n fontWeight: 700,\n color: \"white\",\n padding: \"0px 0px\",\n margin: \"\",\n backgroundColor: \"#F88805\",\n hover: {\n height: \"28px\",\n border: \"0.5px solid white\",\n fontSize: \"12px\",\n width: \"72px\",\n backgroundColor: \"\",\n color: \"\",\n\n cursor: \"pointer\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"#FAAD68\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n channel_one_disabled: {\n width: \"100px\",\n height: \"24px\",\n display: \"flex\",\n margin: \"\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"20px\",\n border: \"none\",\n fontSize: \"10px\",\n fontWeight: 700,\n color: \"white\",\n padding: \"0px 0px\",\n backgroundColor: \"#9E9E9E\",\n hover: {\n height: \"\",\n border: \"\",\n fontSize: \"\",\n width: \"\",\n backgroundColor: \"\",\n color: \"\",\n\n cursor: \"\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"\",\n boxShadow: \"\",\n transition: \"\",\n border: \"\",\n },\n },\n channel_one_transparent: {\n width: \"70px\",\n height: \"25px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n margin: \"\",\n justifyContent: \"center\",\n borderRadius: \"6px\",\n border: \"1px solid white\",\n fontSize: \"10px\",\n fontWeight: 500,\n color: \"white\",\n padding: \"0px !important\",\n backgroundColor: \"transparent\",\n hover: {\n height: \"\",\n border: \"\",\n fontSize: \"\",\n width: \"\",\n backgroundColor: \"\",\n color: \"\",\n\n cursor: \"pointer\",\n },\n disabled: {\n cursor: \"\",\n opacity: \"\",\n },\n active: {\n backgroundColor: \"rgba(255, 255, 255, 0.22)\",\n boxShadow: \"\",\n transition: \"background-color 0.2s ease-in\",\n border: \"\",\n },\n },\n brewery: {\n width: \"138px\",\n height: \"44px\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"6px\",\n border: \"none\",\n fontSize: \"16px\",\n margin: \"\",\n fontWeight: 500,\n color: \"white\",\n padding: \"12px 16px\",\n backgroundColor: \"#D16A2F\",\n hover: {\n height: \"\",\n border: \"\",\n fontSize: \"\",\n width: \"\",\n backgroundColor: \"#D16A2F\",\n color: \"\",\n\n cursor: \"pointer\",\n },\n disabled: {\n cursor: \"not-allowed\",\n opacity: \"0.4\",\n },\n active: {\n backgroundColor: \"\",\n boxShadow: \"0 0 5px black\",\n transition: \"\",\n border: \"\",\n },\n },\n};\n\nconst Button = styled.button<StyledButtonPropsTwo>`\n ${({ type }) => {\n const preset = ButtonPresets[type];\n return `\n width: ${preset.width};\n height: ${preset.height};\n display: ${preset.display};\n flex-direction: ${preset.flexDirection};\n align-items: ${preset.alignItems};\n justify-content: ${preset.justifyContent};\n border-radius: ${preset.borderRadius};\n border: ${preset.border};\n font-size: ${preset.fontSize};\n font-weight: ${preset.fontWeight};\n color: ${preset.color};\n padding: ${preset.padding};\n background-color: ${preset.backgroundColor};\n margin: ${preset.margin};\n\n &:hover {\n background-color: ${preset.hover.backgroundColor};\n color: ${preset.hover.color};\n cursor: ${preset.hover.cursor};\n width:${preset.hover.width};\n height:${preset.hover.height};\n border:${preset.hover.border};\n font-size:${preset.hover.fontSize};\n }\n\n &:disabled {\n cursor: ${preset.disabled.cursor};\n opacity: ${preset.disabled.opacity};\n }\n &:active {\n background-color: ${preset.active.backgroundColor};\n box-shadow: ${preset.active.boxShadow};\n border: ${preset.active.border};\n transition: ${preset.active.transition};\n }\n \n `;\n }}\n\n ${({ styles }) => styles && { ...styles }}\n ${({ hoverstyles }) =>\n hoverstyles && {\n \"&:hover\": { ...hoverstyles },\n }}\n ${({ activestyles }) =>\n activestyles && {\n \"&:active\": { ...activestyles },\n }}\n ${({ disabledstyles }) =>\n disabledstyles && {\n \"&:disabled\": { ...disabledstyles },\n }}\n`;\nexport function WavelengthStyledButton({ type = \"default\", styles, children, disabled = false, hoverstyles, icon, onClick, disabledstyles, activestyles }: StyledButtonPropsTwo) {\n return (\n <Button type={type} styles={styles} hoverstyles={hoverstyles} disabledstyles={disabledstyles} disabled={disabled} activestyles={activestyles} onClick={onClick}>\n {icon}\n {children}\n </Button>\n );\n}\n\nWavelengthStyledButton.displayName = \"WavelengthStyledButton\";\n\nexport default WavelengthStyledButton;\n","import { createContext, useContext } from \"react\";\n\nexport type ThemeProperties = {\n name?: string;\n};\n\nexport const WavelengthAppTheme = createContext<ThemeProperties>({});\n\nexport const useThemeContext = () => useContext(WavelengthAppTheme);\n","import { useThemeContext } from \"./WavelengthAppTheme\";\n\nexport type ColorPalette = {\n primary: string;\n secondary: string;\n};\n\n//#region Default Palette\n\nconst defaultPalette: ColorPalette = {\n primary: `#4373AA`,\n secondary: `#FFFFFF`,\n};\n\n//#endregion\n\nconst arrowPalette: ColorPalette = {\n primary: \"#46D8EC\",\n secondary: \"#F7F7F9\",\n};\n\nconst breweryPalette: ColorPalette = {\n primary: \"#D16A2F\",\n secondary: \"#FDFCFB\",\n};\n\nconst rapidRefPalette: ColorPalette = {\n primary: \"#12141A\",\n secondary: \"#26BABE\",\n};\n\nconst swarmPalette: ColorPalette = {\n primary: \"#000613\",\n secondary: \"#FCD82F\",\n};\n\n/**\n * Retrieves a palette for the current application\n * @returns\n */\nexport function getPalette() {\n // Retrieves the App Theme\n const { name } = useThemeContext();\n\n // Add App Specific Palettes Here\n if (name !== undefined) {\n if (name.toLowerCase() === \"arrow\") {\n return arrowPalette;\n }\n if (name.toLowerCase() === \"brewery\") {\n return breweryPalette;\n }\n if (name.toLowerCase() === \"rapidref\") {\n return rapidRefPalette;\n }\n if (name.toLowerCase() === \"swarm\") {\n return swarmPalette;\n }\n }\n\n return defaultPalette;\n}\n","import React, { ReactNode } from \"react\";\n\nimport { getPalette } from \"../../../themes/Palette\";\nimport Grid from \"@mui/material/Grid\";\n\ninterface WavelengthBoxProps {\n width?: number;\n height?: number;\n children: ReactNode;\n borderTopRadius?: string;\n borderBottomRadius?: string;\n id?: string;\n}\n\nexport function WavelengthBox({ width, height, children, borderBottomRadius, borderTopRadius, id }: WavelengthBoxProps) {\n const palette = getPalette();\n\n //#region CSS\n //#endregion\n\n return (\n <Grid\n container\n sx={{\n width: { width },\n height: { height },\n borderTopLeftRadius: borderTopRadius,\n borderTopRightRadius: borderTopRadius,\n borderBottomLeftRadius: borderBottomRadius,\n borderBottomRightRadius: borderBottomRadius,\n borderColor: \"#70714B\",\n bgcolor: palette.primary ? palette.primary : \"brown\",\n border: \"1px solid grey\",\n }}\n >\n <Grid container direction={\"row\"} alignItems={\"flex-end\"} justifyContent={\"space-evenly\"}>\n {children}\n </Grid>\n </Grid>\n );\n}\n\nWavelengthBox.displayName = \"WavelengthBox\";\n\nexport default WavelengthBox;\n","import { getPalette } from \"../../../themes/Palette\";\nimport React, { ReactNode } from \"react\";\n\ninterface WavelengthContentPlaceholderProps {\n type?: \"circle\" | \"rectangle\";\n width?: string | number;\n height?: string | number;\n txtcolor?: string;\n bgcolor?: string;\n children: ReactNode;\n id?: string;\n}\nexport function WavelengthContentPlaceholder({ type, width, height, txtcolor, bgcolor, children, id }: WavelengthContentPlaceholderProps) {\n //#region CSS\n\n // Retrieves the Palette for this Component\n const palette = getPalette();\n\n const divStyleRectangle = {\n display: \"flex\",\n border: \"1px solid black\",\n padding: \"5px\",\n borderRadius: \"5px\",\n background: bgcolor ? bgcolor : palette.primary,\n width: width ? width : 200,\n height: height ? height : 200,\n color: txtcolor ? txtcolor : palette.secondary,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n const divStyleCircle = {\n display: \"flex\",\n border: \"1px solid black\",\n padding: \"5px\",\n borderRadius: \"50%\",\n background: bgcolor ? bgcolor : bgcolor,\n width: width ? width : 200,\n height: height ? height : 200,\n color: txtcolor ? txtcolor : txtcolor,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n if (type === \"circle\") {\n return (\n <div style={divStyleCircle} id={id}>\n {children}\n </div>\n );\n } else {\n return (\n <div style={divStyleRectangle} id={id}>\n {children}\n </div>\n );\n }\n\n //#endregion\n}\n\nWavelengthContentPlaceholder.displayName = \"WavelengthContentPlaceholder\";\n\nexport default WavelengthContentPlaceholder;\n","import React from \"react\";\nimport { getPalette } from \"../../themes/Palette\";\n\ninterface WavelengthExampleComponentProps {\n width?: number;\n height?: number;\n}\n\nexport function WavelengthExampleComponent({ width = 100, height = 100 }: WavelengthExampleComponentProps) {\n //#region CSS\n\n // Retrieves the Palette for this Component\n const palette = getPalette();\n\n const divStyle = {\n display: \"inline-block\",\n border: \"1px solid black\",\n padding: \"5px\",\n borderRadius: \"5px\",\n };\n\n //#endregion\n\n return (\n <div style={divStyle}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={width} height={height} viewBox=\"0 0 96 105\">\n <g fill={palette.primary} stroke={palette.secondary} strokeLinejoin=\"round\" strokeLinecap=\"round\">\n <path d=\"M14,40v24M81,40v24M38,68v24M57,68v24M28,42v31h39v-31z\" strokeWidth=\"12\" />\n <path d=\"M32,5l5,10M64,5l-6,10 \" strokeWidth=\"2\" />\n </g>\n <path d=\"M22,35h51v10h-51zM22,33c0-31,51-31,51,0\" fill={palette.primary} />\n <g fill=\"#FFF\">\n <circle cx=\"36\" cy=\"22\" r=\"2\" />\n <circle cx=\"59\" cy=\"22\" r=\"2\" />\n </g>\n </svg>\n </div>\n );\n}\n\nWavelengthExampleComponent.displayName = \"WavelengthExampleComponent\";\n\nexport default WavelengthExampleComponent;\n","import React from \"react\";\nimport { ReactNode } from \"react\";\n\nimport TextField from \"@mui/material/TextField\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Icon from \"@mui/material/Icon\";\nimport { getPalette } from \"../../themes/Palette\";\nimport { useRef } from \"react\";\n\nimport ListItem from \"@mui/material/ListItem\";\nimport Popper from \"@mui/material/Popper\";\nimport Autocomplete from \"@mui/material/Autocomplete\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport styled from \"styled-components\";\n\nexport interface SearchResult {\n id: number | string;\n title: string;\n subtitle?: string;\n}\n\nexport interface SearchProps {\n id?: string;\n mode: \"automatic\" | \"manual\";\n type?: \"text-box\" | \"search-bar\";\n iconPos?: \"start\" | \"end\";\n clearIconMarginRight?: string;\n borderRadius?: number | string;\n label?: string;\n width?: string;\n height?: string | number;\n children?: ReactNode;\n borderColor?: string;\n hoverColor?: string;\n textColor?: string;\n backgroundColor?: string;\n placeholder?: string;\n onEnter?: (arg0?: any) => any;\n size?: \"small\" | \"medium\";\n fontSize?: string;\n options: SearchResult[];\n onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;\n onSearchItemSelected?: (selectedItem: SearchResult | string) => void;\n}\n\nconst CustomPopper = (props: any) => {\n return (\n <Popper\n sx={{\n \"&.MuiAutocomplete-popper\": {\n zIndex: 5,\n },\n }}\n {...props}\n placement=\"bottom\"\n disablePortal={true}\n modifiers={[\n {\n name: \"flip\",\n enabled: true,\n options: {\n altBoundary: true,\n rootBoundary: \"document\",\n padding: 8,\n },\n },\n {\n name: \"preventOverflow\",\n enabled: true,\n options: {\n altAxis: false,\n altBoundary: true,\n tether: true,\n rootBoundary: \"document\",\n padding: 8,\n },\n },\n ]}\n />\n );\n};\n\nconst AutocompleteCustomEndAdornment = styled(\"div\")({\n position: \"absolute\",\n right: \"12px\",\n top: \"50%\",\n transform: \"translate(0, -50%)\",\n});\n\nexport function WavelengthSearch({\n id,\n mode,\n type,\n width,\n height,\n label,\n size,\n borderRadius,\n children,\n placeholder,\n onEnter,\n onSearchItemSelected,\n options,\n onChange,\n borderColor,\n hoverColor,\n textColor,\n fontSize,\n backgroundColor,\n iconPos = \"end\",\n clearIconMarginRight,\n}: SearchProps) {\n const palette = getPalette();\n\n borderColor = borderColor ? borderColor : \"#2D3140\";\n hoverColor = hoverColor ? hoverColor : palette.primary;\n\n if (type === \"search-bar\" || type === undefined) {\n if (mode === \"automatic\" && iconPos === \"end\") {\n return (\n <>\n <Autocomplete\n id={id}\n filterOptions={(x) => x}\n loading={true}\n disableListWrap={true}\n freeSolo\n onChange={(e, value) => {\n if (value !== null) {\n if (typeof value !== \"string\") {\n if (onSearchItemSelected) onSearchItemSelected(value);\n }\n }\n }}\n disableCloseOnSelect={false}\n getOptionLabel={(options) => {\n const returnVal = typeof options === \"string\" ? options : options.title;\n return returnVal;\n }}\n options={options}\n sx={{\n width: width,\n \"&.MuiAutocomplete-hasClearIcon .MuiOutlinedInput-root\": {\n paddingRight: clearIconMarginRight ? clearIconMarginRight : \"45px\",\n },\n }}\n renderOption={(props, options) => (\n <ListItem {...props} key={options.id as string}>\n <ListItemText primary={options.title} secondary={options.subtitle} />\n </ListItem>\n )}\n renderInput={(params) => (\n <TextField\n placeholder={placeholder}\n {...params}\n size={size}\n InputProps={{\n ...params.InputProps,\n style: { borderRadius: borderRadius, color: textColor, backgroundColor: backgroundColor, height: height, fontSize: fontSize },\n type: \"search\",\n\n endAdornment: (\n <AutocompleteCustomEndAdornment>\n <IconButton sx={{ color: \"white\" }}>{children}</IconButton>\n </AutocompleteCustomEndAdornment>\n ),\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n height: height,\n },\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}` },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n label={label}\n onChange={onChange}\n />\n )}\n PopperComponent={CustomPopper}\n />\n </>\n );\n } else if (mode === \"automatic\" && iconPos === \"start\") {\n return (\n <>\n <Autocomplete\n id={id}\n filterOptions={(x) => x}\n loading={true}\n disableListWrap={true}\n freeSolo\n onChange={(e, value) => {\n if (value !== null) {\n if (typeof value !== \"string\") {\n if (onSearchItemSelected) onSearchItemSelected(value);\n }\n }\n }}\n disableCloseOnSelect={false}\n getOptionLabel={(options) => {\n const returnVal = typeof options === \"string\" ? options : options.title;\n return returnVal;\n }}\n options={options}\n sx={{\n width: width,\n \"&.MuiAutocomplete-hasClearIcon .MuiOutlinedInput-root\": {\n paddingRight: clearIconMarginRight ? clearIconMarginRight : \"15px\",\n },\n }}\n renderOption={(props, results) => (\n <ListItem {...props} key={results.id as string}>\n <ListItemText primary={results.title} secondary={results.subtitle} />\n </ListItem>\n )}\n renderInput={(params) => (\n <TextField\n placeholder={placeholder}\n {...params}\n size={size}\n InputProps={{\n ...params.InputProps,\n style: { borderRadius: borderRadius, color: textColor, backgroundColor: backgroundColor, height: height, fontSize: fontSize },\n type: \"search\",\n endAdornment: null,\n startAdornment: (\n <InputAdornment position=\"start\">\n <Icon sx={{ color: textColor, paddingRight: \"0px\" }}>{children}</Icon>\n </InputAdornment>\n ),\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n height: height,\n },\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}` },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n label={label}\n onChange={onChange}\n />\n )}\n PopperComponent={CustomPopper}\n />\n </>\n );\n } else if (mode === \"manual\" && iconPos === \"end\") {\n const textRef = useRef<HTMLInputElement>();\n return (\n <>\n <Autocomplete\n id={id}\n filterOptions={(x) => x}\n loading={true}\n freeSolo\n onChange={(e, value) => {\n if (value !== null) {\n if (typeof value !== \"string\") {\n if (onSearchItemSelected) onSearchItemSelected(value);\n }\n }\n }}\n disableCloseOnSelect={false}\n //value={text1}\n getOptionLabel={(options) => {\n const returnVal = typeof options === \"string\" ? options : options.title;\n return returnVal;\n }}\n options={options}\n sx={{\n width: width,\n \"&.MuiAutocomplete-hasClearIcon .MuiOutlinedInput-root\": {\n paddingRight: clearIconMarginRight ? clearIconMarginRight : \"50px\",\n },\n }}\n renderOption={(props, options) => (\n <ListItem {...props} key={options.id as string}>\n <ListItemText primary={options.title} secondary={options.subtitle} />\n </ListItem>\n )}\n renderInput={(params) => (\n <TextField\n inputRef={textRef}\n placeholder={placeholder}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n if (textRef.current && onEnter) {\n onEnter(textRef.current.value);\n }\n }\n }}\n {...params}\n size={size}\n InputProps={{\n ...params.InputProps,\n style: { borderRadius: borderRadius, color: textColor, fontSize: fontSize },\n type: \"search\",\n endAdornment: (\n <AutocompleteCustomEndAdornment>\n <IconButton\n sx={{ color: textColor }}\n onClick={() => {\n if (textRef.current && onEnter) {\n onEnter(textRef.current.value);\n }\n }}\n >\n {children}\n </IconButton>\n </AutocompleteCustomEndAdornment>\n ),\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n height: height,\n },\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}`, verticalAlign: \"bottom\" },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n label={label}\n />\n )}\n />\n </>\n );\n } else if (mode === \"manual\" && iconPos === \"start\") {\n const textRef = useRef<HTMLInputElement>();\n return (\n <>\n <Autocomplete\n id={id}\n filterOptions={(x) => x}\n loading={true}\n freeSolo\n onChange={(e, value) => {\n if (value !== null) {\n if (typeof value !== \"string\") {\n if (onSearchItemSelected) onSearchItemSelected(value);\n }\n }\n }}\n disableCloseOnSelect={false}\n //value={text1}\n getOptionLabel={(options) => {\n const returnVal = typeof options === \"string\" ? options : options.title;\n return returnVal;\n }}\n options={options}\n sx={{\n width: width,\n \"&.MuiAutocomplete-hasClearIcon .MuiOutlinedInput-root\": {\n paddingRight: clearIconMarginRight ? clearIconMarginRight : \"15px\",\n },\n }}\n renderOption={(props, options) => (\n <ListItem {...props} key={options.id as string}>\n <ListItemText primary={options.title} secondary={options.subtitle} />\n </ListItem>\n )}\n renderInput={(params) => (\n <TextField\n inputRef={textRef}\n placeholder={placeholder}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n if (textRef.current && onEnter) {\n onEnter(textRef.current.value);\n }\n }\n }}\n {...params}\n size={size}\n InputProps={{\n ...params.InputProps,\n style: { borderRadius: borderRadius, color: textColor, fontSize: fontSize },\n type: \"search\",\n endAdornment: null,\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconButton\n sx={{ color: textColor, paddingRight: \"0px\" }}\n onClick={() => {\n if (textRef.current && onEnter) {\n onEnter(textRef.current.value);\n }\n }}\n >\n {children}\n </IconButton>\n </InputAdornment>\n ),\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n height: height,\n },\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}`, verticalAlign: \"bottom\" },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n label={label}\n />\n )}\n />\n </>\n );\n }\n } else if (type === \"text-box\") {\n if (mode === \"automatic\") {\n return (\n <>\n <Autocomplete\n id={id}\n filterOptions={(x) => x}\n loading={true}\n disableListWrap={true}\n freeSolo\n disableClearable\n onChange={(e, value) => {\n if (value !== null) {\n if (typeof value !== \"string\") {\n if (onSearchItemSelected) onSearchItemSelected(value);\n }\n }\n }}\n disableCloseOnSelect={false}\n getOptionLabel={(options) => {\n const returnVal = typeof options === \"string\" ? options : options.title;\n return returnVal;\n }}\n options={options}\n sx={{\n width: width,\n \"&.MuiAutocomplete-hasClearIcon .MuiOutlinedInput-root\": {\n paddingRight: clearIconMarginRight ? clearIconMarginRight : \"15px\",\n },\n }}\n renderOption={(props, results) => (\n <ListItem {...props} key={results.id as string}>\n <ListItemText primary={results.title} secondary={results.subtitle} />\n </ListItem>\n )}\n renderInput={(params) => (\n <TextField\n placeholder={placeholder}\n {...params}\n size={size}\n InputProps={{\n ...params.InputProps,\n style: { borderRadius: borderRadius, color: textColor, backgroundColor: backgroundColor, height: height, fontSize: fontSize },\n type: \"search\",\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n height: height,\n },\n \"& .MuiAutocomplete-endAdornment\": {\n display: \"none\",\n },\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}` },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n label={label}\n onChange={onChange}\n />\n )}\n PopperComponent={CustomPopper}\n />\n </>\n );\n } else if (mode === \"manual\") {\n const textRef = useRef<HTMLInputElement>();\n\n return (\n <>\n <Autocomplete\n id={id}\n filterOptions={(x) => x}\n loading={true}\n freeSolo\n onChange={(e, value) => {\n if (value !== null) {\n if (typeof value !== \"string\") {\n if (onSearchItemSelected) onSearchItemSelected(value);\n }\n }\n }}\n disableCloseOnSelect={false}\n //value={text1}\n getOptionLabel={(options) => {\n const returnVal = typeof options === \"string\" ? options : options.title;\n return returnVal;\n }}\n options={options}\n sx={{\n width: width,\n \"&.MuiAutocomplete-hasClearIcon .MuiOutlinedInput-root\": {\n paddingRight: clearIconMarginRight ? clearIconMarginRight : \"15px\",\n },\n }}\n renderOption={(props, options) => (\n <ListItem {...props} key={options.id as string}>\n <ListItemText primary={options.title} secondary={options.subtitle} />\n </ListItem>\n )}\n renderInput={(params) => (\n <TextField\n placeholder={placeholder}\n inputRef={textRef}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n if (textRef.current && onEnter) {\n onEnter(textRef.current.value);\n }\n }\n }}\n {...params}\n size={size}\n InputProps={{\n ...params.InputProps,\n endAdornment: null,\n style: { borderRadius: borderRadius, color: textColor, fontSize: fontSize },\n type: \"search\",\n }}\n sx={{\n \"& .MuiInputBase-root\": {\n height: height,\n },\n \"&.MuiTextField-root\": {\n \"& label\": { color: `${textColor}`, verticalAlign: \"bottom\" },\n \"& label.Mui-focused\": {\n color: `${hoverColor}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: `${borderColor}`,\n },\n \"&:hover fieldset\": {\n borderColor: `${hoverColor}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${hoverColor}`,\n },\n },\n },\n }}\n label={label}\n />\n )}\n />\n </>\n );\n }\n }\n\n return undefined;\n}\n\nWavelengthSearch.displayName = \"WavelengthSearch\";\n\nexport default WavelengthSearch;\n","import styled from \"@emotion/styled\";\nimport React from \"react\";\nimport { getPalette } from \"../../themes/Palette\";\nimport TextField, { TextFieldProps } from \"@mui/material/TextField\";\n\nexport function WavelengthSearchTextField() {\n const palette = getPalette();\n const WavelengthSearchTextField = styled(TextField)<TextFieldProps>(() => ({\n \"&.MuiTextField-root\": {\n \"& label.Mui-focused\": {\n color: `${palette.primary}`,\n },\n \"& .MuiOutlinedInput-root\": {\n \"& fieldset\": {\n borderColor: \"#2D3140\",\n },\n \"&:hover fieldset\": {\n borderColor: `${palette.primary}`,\n },\n \"&.Mui-focused fieldset\": {\n borderColor: `${palette.primary}`,\n },\n },\n },\n }));\n return <WavelengthSearchTextField />;\n}\n\nWavelengthSearchTextField.displayName = \"WavelengthSearchTextField\";\n\nexport default WavelengthSearchTextField;\n","import React from \"react\";\n\ninterface WavelengthAppLogoProps {\n width?: number;\n height?: number;\n name?: string;\n grayscale?: boolean;\n id?: string;\n}\n\n/* eslint-ignore */\nexport function WavelengthAppLogo({ width, height, name = \"\", grayscale, id }: WavelengthAppLogoProps) {\n let logo;\n {\n /* This argument(arg) get the url address to filter id which is a grayscale filter*/\n }\n let arg: string = \"\";\n if (grayscale) arg = \"grayscale(1)\";\n if (name.toLowerCase() === \"wings\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 34 31\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <path d=\"M2.36037 0.97998L6.42418 9.35366L0.397217 5.01932L2.36037 0.97998Z\" fill=\"#DEE8FF\" />\n <path d=\"M0 5.67743L16.6372 17.6441L15.6441 20.6623L2.7805 11.4036L0 5.67743Z\" fill=\"#DEE8FF\" />\n <path d=\"M3.4834 12.8559L6.2639 18.5821L10.2131 21.4263H15.3922L3.4834 12.8559Z\" fill=\"#DEE8FF\" />\n <path d=\"M12.4589 23.045L14.4067 24.4444L13.1693 28.2266L9.2124 25.3824L12.4589 23.045Z\" fill=\"#DEE8FF\" />\n <path d=\"M31.6398 0.97998L27.5684 9.35366L33.603 5.01932L31.6398 0.97998Z\" fill=\"#DEE8FF\" />\n <path d=\"M34 5.67743L17.3628 17.6441L18.3482 20.6623L31.2195 11.4036L34 5.67743Z\" fill=\"#DEE8FF\" />\n <path d=\"M30.5169 12.8559L27.7364 18.5821L23.7872 21.4263H18.6082L30.5169 12.8559Z\" fill=\"#DEE8FF\" />\n <path d=\"M21.5414 23.045L19.5935 24.4444L20.831 28.2266L24.7878 25.3824L21.5414 23.045Z\" fill=\"#DEE8FF\" />\n <path d=\"M16.9962 30.98L20.2503 28.6502L16.9962 26.3052L13.7498 28.6502L16.9962 30.98Z\" fill=\"#DEE8FF\" />\n <path\n d=\"M16.9959 25.39C17.9915 25.39 18.7986 24.5907 18.7986 23.6048C18.7986 22.6189 17.9915 21.8196 16.9959 21.8196C16.0002 21.8196 15.1931 22.6189 15.1931 23.6048C15.1931 24.5907 16.0002 25.39 16.9959 25.39Z\"\n fill=\"#DEE8FF\"\n />\n {/* Do not delete the following filter or all other logo will loose the filter */}\n <filter id=\"setGray\">\n <feColorMatrix type=\"matrix\" values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\" />\n </filter>\n ;\n </svg>\n );\n } else if (name.toLowerCase() === \"563rdpatch\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 892 925\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <path d=\"M442 917C147.5 919.5 7 662 7 662L115.5 591.5L767 596.5L883.5 668C883.5 668 736.5 914.5 442 917Z\" fill=\"#7BAFD4\" />\n <path\n d=\"M846 413C846 635.307 666.006 815.5 444 815.5C221.994 815.5 42 635.307 42 413C42 190.693 221.994 10.5 444 10.5C666.006 10.5 846 190.693 846 413Z\"\n fill=\"#7BAFD4\"\n stroke=\"#BE0A2D\"\n strokeWidth=\"21\"\n />\n <path d=\"M197.047 430.515L451.475 83.3935L702.416 433.044L447.988 780.166L197.047 430.515Z\" fill=\"#C61543\" stroke=\"#011787\" strokeWidth=\"6\" />\n <path d=\"M192.502 573.142C253.383 551.4 272.724 537.885 346.375 485.768L356.511 504.375C284.084 546.756 244.632 577.982 192.502 573.142Z\" fill=\"#FFFDFE\" stroke=\"#080808\" strokeWidth=\"4\" />\n <path\n d=\"M424.699 189.251L231.882 295.308C222.704 300.357 219.758 312.145 225.483 320.917L443.037 654.308C448.353 662.454 459.179 664.903 467.484 659.838L651.48 547.621C660.089 542.371 662.706 531.075 657.283 522.574L448.549 195.342C443.447 187.343 433.012 184.678 424.699 189.251Z\"\n fill=\"white\"\n stroke=\"#080808\"\n strokeWidth=\"4\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M247.767 302.453L244.219 299.546L244.504 304.124L245.544 320.83L246.237 331.967L250.229 331.719L249.614 321.837L258.823 316.68L265.746 322.35L268.281 319.256L260.303 312.721L247.767 302.453ZM255.499 313.957L249.338 317.407L248.781 308.454L255.499 313.957ZM262.5 340C263 335 263.844 328.506 263.844 328.506C263.844 328.506 267.433 329.497 273.808 331.483C276.44 332.303 279.319 333.654 283 336C286.181 338.027 286.79 343.107 283.471 346C281.519 347.701 277.831 347.806 277.831 347.806C277.831 347.806 279.636 349.477 281 350.5C283 352 285.5 353.5 285.5 353.5L276.281 359.5V353.5C276.281 351.201 275.5 349.5 275.5 349.5C275.5 349.5 272.971 354.012 268.5 354C264.029 353.988 261.978 350.65 261.844 348.715C261.604 345.244 261.803 344.217 262.075 342.812C262.214 342.097 262.371 341.284 262.5 340ZM401.499 349.001C401.499 349.001 405 382.999 400 405.5C399.617 407.225 399.254 408.825 398.912 410.331L398.91 410.339L398.91 410.34C395.716 424.41 394.399 430.212 395.966 452.846C396.606 462.102 404.113 481.942 425.5 482C446.888 482.058 460.999 454.502 460.999 454.502C460.999 454.502 463.5 460.5 463.5 471.5V487.5L495.394 467.261C495.394 467.261 486.285 464.163 481 460.5C474.298 455.854 468.413 448.502 468.413 448.502C468.413 448.502 490.834 450.369 500.169 442.234C516.047 428.396 517.217 407.698 501.999 398.002C484.387 386.78 463.589 377.923 450.999 374.002C420.499 364.502 401.499 349.001 401.499 349.001ZM611.23 511.078C615.927 512.648 623 513.999 623 513.999L623 504.5C623 504.281 623.022 503.89 623.052 503.364L623.052 503.362C623.158 501.486 623.36 497.905 623 494.362C622.602 490.443 618.565 488.148 614.5 490.18C612.111 491.374 610.5 493.5 610.5 493.5C610.5 493.5 609.309 491.744 609 490C608.548 487.443 609.405 484.58 609.405 484.58L600.218 490.18C600.218 490.18 603.317 491.727 605 492.5C607.058 493.445 608 495 608 495C608 495 602.29 496.74 601.395 500.87C600.5 505 602.829 507.074 604.5 507.999C606.5 509.107 609.404 510.468 611.23 511.078ZM638.027 542.135L637.369 537.572L635.067 521.619L633.603 511.467L629.641 512.04L630.909 520.83L621.752 525.922L613.607 520.248L611.314 523.527L620.485 529.915L634.241 539.498L638.027 542.135ZM625.403 528.465L631.519 525.064L632.748 533.582L625.403 528.465Z\"\n fill=\"#080808\"\n />\n <path\n d=\"M451.378 427.918L436.607 406.504C492.19 356.495 523.284 327.844 578.609 275.462L650.605 196.957C650.605 196.957 660.89 185.871 670.147 194.269C679.404 202.666 668.189 213.746 668.189 213.746L596.184 294.107C543.323 347.857 511.532 377.161 451.378 427.918Z\"\n fill=\"#FFFDFE\"\n stroke=\"#080808\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M590.432 259.521L618.227 280.073C618.623 276.279 617.5 271.385 625.745 264.337C628.183 264.272 645.462 248.177 648.183 240.326C648.215 233.831 656.562 231.472 662.191 228.334L633.462 208.706C610.895 219.93 599.192 230.947 590.432 259.521Z\"\n fill=\"#011787\"\n stroke=\"#080808\"\n strokeWidth=\"4\"\n />\n <path\n d=\"M635.979 211.619C626.535 202.561 644.225 192.442 651.862 196.853C659.499 201.265 684.11 220.56 687.9 242.497C689.663 252.703 689.442 266.067 683.079 276.803C674.898 290.606 665.641 298.801 653.192 302.633C639.734 306.775 627.683 304.229 615.085 298.731C601.398 292.756 590.726 285.422 580.833 267.941C574.72 257.14 587.874 255.202 594.823 259.66C601.772 264.118 617.067 283.896 633.739 287.69C650.411 291.484 659.817 279.47 662.621 276.701C665.425 273.931 673.675 268.405 671.139 247.053C668.994 229.001 645.424 220.677 635.979 211.619Z\"\n fill=\"#FFD50D\"\n stroke=\"#080808\"\n strokeWidth=\"4\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M788.921 702.029L788.505 701.635L788.505 701.635C783.518 696.912 779.533 693.138 777.408 689.663C776.377 687.976 776.076 686.8 776.082 685.983C776.088 685.3 776.306 684.36 777.475 683.044C779.1 681.214 780.202 680.859 780.789 680.784C781.448 680.699 782.453 680.842 784.083 681.752C785.738 682.675 787.578 684.127 789.785 686.05C790.489 686.663 791.253 687.346 792.054 688.06L792.054 688.06C793.579 689.422 795.233 690.899 796.846 692.233C801.647 696.204 805.283 699.394 807.901 702.115C810.567 704.885 811.812 706.804 812.3 708.176C812.61 709.047 812.609 709.677 812.443 710.301C812.251 711.026 811.745 712.063 810.524 713.519C809.563 714.665 808.739 714.925 807.888 714.943C806.773 714.966 805.141 714.544 802.927 713.342C798.451 710.912 793.561 706.424 788.921 702.029ZM769.998 676.403C767.498 679.219 766.111 682.414 766.083 685.902C766.055 689.257 767.292 692.288 768.876 694.879C771.722 699.534 776.615 704.158 781.1 708.396L781.107 708.403C781.422 708.7 781.735 708.995 782.044 709.289C786.481 713.492 792.319 718.962 798.156 722.13C801.098 723.727 804.518 725.014 808.094 724.941C811.933 724.862 815.439 723.221 818.186 719.945C819.972 717.816 821.415 715.484 822.11 712.863C822.23 712.408 822.326 711.954 822.397 711.501H831.5L831.5 701.501L820.13 701.501C818.835 699.337 817.097 697.249 815.107 695.181C812.069 692.024 808.061 688.532 803.219 684.527C801.729 683.294 800.362 682.072 798.948 680.809C798.111 680.06 797.258 679.298 796.353 678.509C794.082 676.531 791.581 674.484 788.956 673.019C786.306 671.54 783.093 670.406 779.517 670.865C775.868 671.333 772.718 673.341 769.998 676.403ZM769 709.5C772.389 705.824 772.388 705.823 772.386 705.822L772.383 705.819L772.377 705.813L772.361 705.799L772.317 705.759C772.282 705.728 772.237 705.687 772.181 705.638C772.07 705.54 771.918 705.408 771.728 705.249C771.348 704.931 770.813 704.501 770.151 704.016C768.846 703.059 766.959 701.818 764.736 700.817C760.496 698.906 753.328 697.225 747.502 702.927C743.542 706.803 742.621 711.913 743.456 716.477C744.273 720.941 746.775 725.159 750.145 728.208C753.1 730.882 756.786 733.068 760.978 733.659C765.344 734.275 769.744 733.079 773.666 729.87C775.221 728.598 776.688 728.312 778.394 728.653C780.355 729.045 782.842 730.339 785.77 732.817C787.689 734.441 788.547 736.088 788.732 737.537C788.908 738.92 788.567 740.879 786.575 743.402C785.571 744.674 784.767 744.865 784.128 744.886C783.219 744.915 781.942 744.567 780.366 743.692C778.842 742.845 777.419 741.718 776.335 740.743C775.806 740.267 775.386 739.853 775.105 739.566C774.965 739.423 774.862 739.314 774.799 739.246L774.774 739.219L774.736 739.177L774.735 739.176C774.736 739.177 774.737 739.178 771 742.5C767.263 745.822 767.264 745.823 767.265 745.825L767.268 745.828L767.274 745.834L767.289 745.851L767.333 745.9C767.368 745.939 767.415 745.99 767.474 746.053C767.59 746.178 767.752 746.35 767.955 746.557C768.36 746.972 768.936 747.538 769.648 748.179C771.05 749.439 773.095 751.092 775.509 752.433C777.87 753.745 781 754.992 784.45 754.88C788.17 754.76 791.679 753.076 794.424 749.598C797.709 745.438 799.236 740.862 798.652 736.274C798.076 731.751 795.547 727.991 792.23 725.183C788.658 722.161 784.645 719.705 780.356 718.847C775.811 717.938 771.279 718.902 767.334 722.13C765.45 723.671 763.822 723.961 762.374 723.757C760.753 723.528 758.841 722.59 756.854 720.792C754.962 719.08 753.678 716.78 753.293 714.676C752.925 712.671 753.386 711.161 754.497 710.074C755.824 708.775 757.656 708.594 760.628 709.934C762.011 710.557 763.282 711.379 764.235 712.078C764.702 712.421 765.07 712.717 765.312 712.92C765.432 713.02 765.52 713.096 765.571 713.141C765.596 713.164 765.613 713.179 765.62 713.185L765.619 713.184L765.615 713.18L765.613 713.179C765.612 713.178 765.611 713.176 769 709.5Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M704.731 742.776L745.132 791.035L764.139 775.038L757.7 767.387L746.363 776.928L735.805 764.316L745.658 756.154L739.278 748.453L729.386 756.649L718.754 743.949L729.542 734.736L723.048 727.132L704.731 742.776Z\"\n fill=\"#BE0A2D\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M681.308 763.739L678.053 759.943L674.544 762.952L712.412 814.847L720.49 808.952L706.436 789.692L707.05 789.28C707.611 789.516 708.252 789.786 708.957 790.084C711.598 791.202 715.128 792.712 718.7 794.284C722.282 795.86 725.86 797.478 728.614 798.818C729.999 799.491 731.109 800.062 731.885 800.502C732.278 800.725 732.514 800.874 732.63 800.954L732.643 800.963C732.674 800.988 732.695 801.004 732.707 801.012C732.712 801.015 732.716 801.017 732.716 801.017C732.716 801.017 732.714 801.015 732.708 801.01C732.704 801.007 732.698 801.003 732.691 800.998C732.68 800.989 732.664 800.977 732.643 800.963C732.521 800.863 732.262 800.628 732.001 800.267L740.098 794.399C739.458 793.516 738.618 792.936 738.318 792.729L738.312 792.725C737.853 792.408 737.333 792.095 736.815 791.802C735.771 791.21 734.443 790.533 732.988 789.825C730.061 788.401 726.345 786.722 722.727 785.13C719.767 783.828 716.843 782.571 714.418 781.539C714.914 780.68 715.392 779.734 715.813 778.708C716.905 776.045 717.652 772.735 717.183 769.042C716.708 765.302 715.029 761.532 711.834 757.948C704.62 749.855 695.264 751.092 689.031 753.479C685.869 754.689 683.152 756.295 681.256 757.564C680.298 758.205 679.524 758.778 678.978 759.199C678.705 759.41 678.488 759.584 678.332 759.711C678.254 759.775 678.192 759.827 678.145 759.866L678.087 759.915L678.067 759.931L678.059 759.938L678.056 759.941C678.056 759.941 678.053 759.943 681.308 763.739ZM700.536 781.608L703.346 779.723L703.376 779.693L703.406 779.662C703.623 779.439 703.947 779.088 704.318 778.628C705.077 777.69 705.95 776.403 706.56 774.914C707.164 773.442 707.465 771.891 707.263 770.303C707.067 768.761 706.356 766.831 704.369 764.602C701.222 761.071 697.181 761.066 692.607 762.817C691.054 763.412 689.599 764.165 688.35 764.908L700.536 781.608Z\"\n fill=\"#BE0A2D\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M661.5 777.049C665.132 773.612 665.132 773.613 665.132 773.613L665.866 774.391C666.342 774.896 667.037 775.635 667.917 776.574C669.676 778.452 672.175 781.13 675.136 784.334C681.055 790.739 688.836 799.26 696.255 807.699C700.088 812.058 702.29 815.018 704.66 818.204C705.097 818.792 705.54 819.387 706 820L698 826C697.514 825.352 697.055 824.735 696.61 824.137C694.959 821.92 693.496 819.953 691.538 817.578L681.615 823.999L682.103 825.295C683.233 828.3 684.029 830.416 685.588 834.011L676.412 837.988C674.754 834.162 673.846 831.749 672.667 828.616C672.141 827.218 671.561 825.677 670.836 823.803C666.604 812.858 662.705 801.789 659.868 793.469C658.448 789.306 657.292 785.823 656.49 783.38C656.089 782.158 655.777 781.196 655.564 780.537C655.457 780.208 655.376 779.955 655.321 779.783L655.238 779.524L655.237 779.52L655.236 779.519C655.236 779.519 655.236 779.518 660 778L655.236 779.519L654.064 775.843L662.301 770.621L665.132 773.613L661.5 777.049ZM670.73 794.309C672.806 800.309 675.291 807.3 677.973 814.444L684.904 809.96C679.958 804.403 675.014 798.969 670.73 794.309Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M646.049 780.142L625.867 791.494L655.045 848.77L663.955 844.23L651.306 819.401L661.558 813.296L656.442 804.704L646.757 810.471L639.133 795.506L650.951 788.858L646.049 780.142Z\"\n fill=\"#BE0A2D\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M596.139 805.079L598.387 809.545C596.139 805.079 596.142 805.078 596.142 805.078L596.146 805.076L596.155 805.071L596.178 805.06L596.246 805.026C596.301 804.999 596.374 804.964 596.465 804.921C596.647 804.835 596.9 804.718 597.216 804.579C597.846 804.301 598.735 803.931 599.82 803.538C601.964 802.762 604.988 801.855 608.347 801.439C614.971 800.618 624.35 801.662 629.411 811.251C631.652 815.497 632.377 819.559 631.941 823.304C631.51 827.001 629.99 830.036 628.291 832.359C627.636 833.253 626.945 834.057 626.258 834.772C628.364 836.355 630.901 838.278 633.462 840.253C636.592 842.666 639.796 845.188 642.296 847.272C643.539 848.309 644.665 849.285 645.537 850.11C645.969 850.519 646.399 850.947 646.769 851.366L646.773 851.371C647.015 851.644 647.691 852.409 648.1 853.42L638.831 857.173C638.998 857.585 639.194 857.876 639.288 858.002L639.277 857.99C639.184 857.884 638.991 857.683 638.663 857.373C638.015 856.76 637.075 855.939 635.892 854.952C633.54 852.991 630.455 850.562 627.355 848.172C624.265 845.789 621.2 843.476 618.905 841.757C618.293 841.298 617.735 840.881 617.248 840.518L616.552 840.771L625.573 862.841L616.316 866.625L592.01 807.158L596.139 805.079ZM615.945 830.352L612.765 831.507L604.943 812.37C606.334 811.949 607.927 811.567 609.577 811.363C614.438 810.76 618.36 811.735 620.568 815.919C621.961 818.558 622.188 820.603 622.008 822.146C621.823 823.737 621.159 825.171 620.22 826.455C619.27 827.753 618.113 828.793 617.152 829.522C616.681 829.879 616.282 830.142 616.018 830.307C615.993 830.323 615.968 830.338 615.945 830.352Z\"\n fill=\"#BE0A2D\"\n />\n <path d=\"M639.288 858.002C639.309 858.026 639.324 858.044 639.333 858.056C639.343 858.067 639.345 858.072 639.345 858.072C639.343 858.072 639.322 858.048 639.288 858.002Z\" fill=\"#BE0A2D\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M578.516 814.559C578.516 814.559 578.516 814.559 574.182 817.052L578.516 814.559L576.462 810.988L567.234 814.142L567.514 817.989L572.501 817.626C567.514 817.989 567.514 817.989 567.514 817.989L567.514 817.991L567.535 818.267C567.548 818.446 567.568 818.712 567.595 819.057C567.648 819.746 567.727 820.755 567.831 822.037C568.04 824.6 568.351 828.256 568.759 832.636C569.574 841.389 570.779 853.062 572.337 864.693C572.603 866.683 572.807 868.317 572.992 869.798L572.992 869.8C573.407 873.122 573.726 875.681 574.444 879.789L584.295 878.065C583.619 874.205 583.34 871.962 582.943 868.776L582.94 868.754C582.886 868.323 582.83 867.874 582.771 867.402L593.92 863.477C595.269 866.244 596.232 868.498 597.319 871.039C597.612 871.725 597.914 872.432 598.235 873.175L607.416 869.21C607.112 868.507 606.82 867.825 606.533 867.151C604.972 863.5 603.522 860.107 600.815 854.973C595.572 845.034 589.998 834.931 585.738 827.321C583.608 823.514 581.804 820.326 580.532 818.089C579.896 816.97 579.393 816.089 579.048 815.487C578.876 815.186 578.743 814.955 578.653 814.798L578.518 814.563L578.516 814.559ZM581.462 857.261C580.524 849.687 579.741 842.31 579.124 835.99C582.201 841.522 585.738 847.961 589.249 854.519L581.462 857.261Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M560.75 815.959L562 882.5L553.507 884.5L542.183 859.934L543 887.5L533.775 889.5L506.945 829.562L516.055 825.437L532.143 860.966L532.867 839.067L525.934 823.538L533.492 820.164L533.503 819.835L534.18 819.857L535.066 819.462L535.258 819.893L543.497 820.165L542.938 837.095L551.069 855.31L550.75 816.041L560.75 815.959Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M204.604 757.103L169.555 809.379L190.226 823.16L195.773 814.84L183.445 806.621L192.604 792.959L203.194 800.139L208.806 791.861L198.173 784.653L207.396 770.897L219.257 778.68L224.743 770.32L204.604 757.103Z\"\n fill=\"#BE0A2D\"\n />\n <path d=\"M229.143 771.547L237.857 776.453L211.268 823.672L221.529 829.686L216.471 838.313L197.732 827.328L229.143 771.547Z\" fill=\"#BE0A2D\" />\n <path\n d=\"M277.762 805.083C281.561 801.792 287.502 799.098 294.663 802.262C297.595 803.557 300.033 805.265 301.706 807.587C303.434 809.987 304.04 812.617 303.999 815.158C303.96 817.582 303.335 819.948 302.62 822.051C302.008 823.85 301.226 825.739 300.488 827.521L300.482 827.536C300.361 827.829 300.241 828.118 300.123 828.404L290.877 824.596C291.01 824.272 291.141 823.956 291.268 823.648L291.269 823.646C292.014 821.844 292.653 820.297 293.152 818.83C293.736 817.114 293.986 815.894 294 814.997C294.013 814.217 293.85 813.791 293.592 813.432C293.278 812.996 292.511 812.243 290.622 811.409C288.141 810.313 286.26 810.951 284.309 812.641C282.233 814.44 280.799 816.91 280.043 818.214L279.965 818.348C279.966 818.346 279.966 818.347 279.964 818.351C279.953 818.37 279.907 818.456 279.817 818.642C279.715 818.85 279.587 819.124 279.432 819.466C279.123 820.148 278.738 821.031 278.297 822.069C277.415 824.141 276.343 826.746 275.258 829.421C273.084 834.785 270.908 840.319 270.182 842.256C269.571 843.883 268.839 846.744 269.033 849.382C269.211 851.823 270.069 853.491 272.157 854.489C274.736 855.722 276.104 855.936 276.738 855.916C277.081 855.906 277.268 855.859 277.669 855.448C278.265 854.836 278.977 853.724 280.002 851.651C280.441 850.763 280.891 849.8 281.4 848.71L281.589 848.305C282.167 847.067 282.808 845.703 283.528 844.264L292.472 848.736C291.817 850.047 291.223 851.308 290.649 852.537L290.46 852.943C289.959 854.016 289.459 855.088 288.966 856.083C287.898 858.245 286.61 860.601 284.831 862.427C282.857 864.453 280.294 865.813 277.043 865.912C274.084 866.002 271.014 865.028 267.843 863.511C261.553 860.503 259.411 854.92 259.059 850.113C258.722 845.502 259.928 841.117 260.818 838.744C261.592 836.681 263.808 831.05 265.991 825.665C267.085 822.966 268.181 820.301 269.095 818.154C269.94 816.167 270.786 814.239 271.32 813.322C271.355 813.261 271.396 813.191 271.441 813.111L271.443 813.109C272.203 811.787 274.368 808.023 277.762 805.083Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M253.229 785.829L226.536 842.826L249.063 853.303L253.28 844.236L239.845 837.987L246.82 823.092L258.379 828.578L262.667 819.544L251.061 814.035L258.085 799.037L270.992 804.926L275.143 795.829L253.229 785.829Z\"\n fill=\"#BE0A2D\"\n />\n <path d=\"M314.728 821.902L305.393 818.735L308.606 809.265L336.606 818.765L333.393 828.235L324.199 825.115L307.758 876.036L298.242 872.964L314.728 821.902Z\" fill=\"#BE0A2D\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M343 824L343.577 819.033L338.986 818.5L326.594 881.536L336.406 883.464L341.005 860.069L341.725 860.241C341.933 860.813 342.169 861.467 342.429 862.187C343.401 864.885 344.689 868.502 345.96 872.191C347.235 875.892 348.476 879.617 349.362 882.548C349.808 884.023 350.142 885.226 350.346 886.094C350.45 886.533 350.5 886.808 350.52 886.947L350.523 886.963C350.526 887.02 350.53 887.052 350.532 887.053C350.533 887.055 350.531 887.027 350.523 886.963C350.513 886.806 350.51 886.456 350.597 886.019L360.403 887.981C360.617 886.911 360.472 885.901 360.421 885.539L360.42 885.533C360.341 884.98 360.217 884.386 360.081 883.807C359.807 882.638 359.403 881.204 358.934 879.655C357.992 876.539 356.702 872.671 355.415 868.934C354.361 865.877 353.299 862.876 352.411 860.395C353.377 860.176 354.397 859.884 355.435 859.497C358.132 858.491 361.07 856.792 363.463 853.94C365.886 851.052 367.514 847.26 367.977 842.482C369.021 831.69 361.761 825.661 355.777 822.705C352.742 821.205 349.718 820.301 347.499 819.77C346.378 819.502 345.432 819.322 344.752 819.207C344.412 819.15 344.136 819.109 343.937 819.081C343.838 819.067 343.757 819.056 343.697 819.048L343.621 819.039L343.595 819.036L343.581 819.034C343.579 819.034 343.577 819.033 343 824ZM342.936 850.249L346.227 851.033L346.26 851.034L346.312 851.036C346.624 851.043 347.101 851.043 347.691 851.003C348.894 850.923 350.432 850.69 351.939 850.128C353.43 849.572 354.773 848.739 355.803 847.513C356.801 846.323 357.736 844.49 358.023 841.518C358.479 836.81 355.739 833.839 351.348 831.67C349.857 830.934 348.316 830.377 346.923 829.964L342.936 850.249Z\"\n fill=\"#BE0A2D\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M380.047 828.774C382.92 826.796 386.333 826.098 390.073 826.53C394.142 827 397.594 828.428 400.071 831.147C402.499 833.813 403.414 837.095 403.724 840.114C404.03 843.105 403.789 846.327 403.472 849.323C403.346 850.515 403.211 851.651 403.079 852.765L403.078 852.767C402.854 854.65 402.638 856.471 402.484 858.398C402.048 863.843 401.569 868.535 400.904 872.471C400.245 876.37 399.358 879.829 397.97 882.669C396.534 885.606 394.473 888.053 391.471 889.547C388.56 890.996 385.33 891.264 382.066 890.981C377.807 890.61 374.451 888.681 372.183 885.582C370.071 882.696 369.163 879.156 368.782 875.831C368.028 869.232 369.158 861.312 370.054 855.267L370.243 853.981C371.14 847.876 372.119 841.216 374.298 836.213C375.511 833.429 377.284 830.677 380.047 828.774ZM380.03 856.166L379.946 856.732C379.009 863.055 378.139 869.634 378.718 874.694C379.004 877.198 379.595 878.777 380.254 879.677C380.756 880.364 381.442 880.889 382.933 881.018C385.172 881.213 386.352 880.925 387.015 880.595C387.587 880.31 388.263 879.755 388.986 878.277C389.756 876.702 390.447 874.335 391.043 870.805C391.633 867.314 392.086 862.976 392.516 857.601C392.683 855.517 392.943 853.315 393.183 851.286L393.183 851.285L393.183 851.283L393.183 851.282L393.183 851.28L393.185 851.267L393.186 851.261C393.311 850.203 393.43 849.193 393.528 848.27C393.836 845.359 393.969 843.019 393.776 841.134C393.585 839.278 393.125 838.372 392.678 837.881C392.28 837.444 391.357 836.745 388.926 836.464C387.177 836.262 386.282 836.622 385.719 837.01C385.047 837.473 384.256 838.395 383.466 840.207C381.839 843.942 381.035 849.372 380.03 856.166Z\"\n fill=\"#BE0A2D\"\n />\n <path d=\"M410.204 829.5L407.504 894.292L417.496 894.708L418.866 861.828L429.264 897H438.719L442.492 831.789L432.508 831.211L430.501 865.912L419.736 829.5H410.204Z\" fill=\"#BE0A2D\" />\n <path\n d=\"M468.586 837.736C470.665 834.252 474.182 831.001 479.5 831.001C483.668 831.001 487.03 832.499 489.548 834.835C491.955 837.067 493.39 839.868 494.268 842.309C495.155 844.777 495.577 847.174 495.785 848.905C495.89 849.784 495.943 850.523 495.971 851.056C495.984 851.323 495.992 851.541 495.996 851.7C495.997 851.78 495.999 851.846 495.999 851.896L496 851.96L496 851.983V851.996C496 851.998 496 852 491 852C486 852 486 852.002 486 852.003L485.999 851.989L485.998 851.94C485.997 851.865 485.993 851.739 485.984 851.569C485.966 851.227 485.93 850.716 485.856 850.095C485.704 848.826 485.407 847.223 484.857 845.692C484.297 844.133 483.576 842.934 482.748 842.167C482.032 841.503 481.082 841.001 479.5 841.001C478.917 841.001 478.172 841.187 477.175 842.858C476.108 844.646 475.293 847.364 474.756 850.573C474.234 853.696 474.039 856.878 473.98 859.321C473.95 860.531 473.955 861.536 473.966 862.231C473.972 862.578 473.98 862.846 473.986 863.022C473.988 863.11 473.991 863.175 473.993 863.215L473.994 863.259L473.994 863.261L473.995 863.262L473.996 863.29L473.997 863.317L473.997 863.319L473.997 863.32L473.997 863.324L473.999 863.368C474.001 863.411 474.004 863.478 474.008 863.57C474.017 863.754 474.032 864.033 474.056 864.394C474.103 865.116 474.184 866.16 474.316 867.416C474.583 869.948 475.053 873.249 475.853 876.48C476.674 879.791 477.748 882.631 479.032 884.506C480.268 886.312 481.156 886.525 481.792 886.499C484.409 886.39 485.774 885.965 486.459 885.606C486.981 885.332 487.203 885.059 487.399 884.599C487.672 883.957 487.889 882.904 487.974 881.068C488.034 879.779 488.023 878.428 488.011 876.83C488.006 876.108 488 875.335 488 874.494H498C498 875.13 498.005 875.785 498.01 876.447L498.01 876.454V876.458C498.023 878.187 498.036 879.959 497.963 881.531C497.861 883.741 497.578 886.219 496.601 888.515C495.547 890.992 493.769 893.063 491.104 894.461C488.601 895.774 485.591 896.349 482.208 896.49C476.844 896.714 473.107 893.553 470.781 890.156C468.502 886.827 467.076 882.636 466.147 878.885C465.197 875.054 464.667 871.262 464.371 868.466C464.223 867.058 464.131 865.879 464.077 865.045C464.05 864.627 464.032 864.295 464.02 864.061C464.014 863.944 464.01 863.852 464.008 863.787L464.004 863.709L464.004 863.702L464.004 863.695L464.001 863.619C463.998 863.555 463.995 863.466 463.991 863.352C463.983 863.125 463.975 862.803 463.968 862.398C463.954 861.589 463.949 860.446 463.982 859.079C464.048 856.366 464.265 852.675 464.893 848.923C465.506 845.259 466.577 841.104 468.586 837.736Z\"\n fill=\"#BE0A2D\"\n />\n <path d=\"M449.5 897V831.5H459.5V897H449.5Z\" fill=\"#BE0A2D\" />\n <path\n d=\"M110.306 667.97L79.0526 692.83L84.6822 696.631C84.6866 696.634 84.6931 696.638 84.7016 696.644C84.7076 696.649 84.7146 696.654 84.7226 696.66C84.7753 696.698 84.8697 696.767 84.9969 696.867C85.253 697.068 85.631 697.381 86.0626 697.792C86.9529 698.64 87.9307 699.771 88.6017 701.06C89.2536 702.311 89.5476 703.568 89.3614 704.871C89.1775 706.158 88.4454 708.056 86.0367 710.464C84.4347 712.066 82.3553 713.401 80.4599 713.814C78.9241 714.148 77.3839 713.962 75.674 712.109C75.4077 711.82 75.2997 711.6 75.4115 710.953C75.5624 710.08 76.1108 708.856 77.1138 707.405C78.0756 706.012 79.2326 704.728 80.1889 703.765C80.6584 703.292 81.0598 702.916 81.3362 702.665C81.4741 702.54 81.5796 702.447 81.6455 702.389C81.6785 702.361 81.7014 702.341 81.7135 702.33L81.7177 702.327C81.7177 702.327 81.7158 702.328 78.4997 698.5C75.2836 694.672 75.2815 694.673 75.2815 694.673L75.279 694.675L75.2732 694.68L75.2582 694.693L75.2146 694.73C75.1798 694.76 75.1333 694.8 75.0761 694.85C74.9619 694.949 74.8048 695.088 74.6125 695.263C74.2289 695.611 73.7007 696.107 73.0921 696.72C71.8923 697.928 70.2995 699.675 68.8864 701.72C67.5145 703.706 66.063 706.326 65.5576 709.25C65.013 712.4 65.5923 715.93 68.3255 718.891C72.6147 723.538 77.8448 724.618 82.5875 723.585C86.9706 722.63 90.6778 719.965 93.1075 717.536C96.6992 713.944 98.7083 710.154 99.2609 706.285C99.8113 702.432 98.8371 699.064 97.4708 696.44C96.759 695.074 95.9235 693.872 95.0911 692.85L108.694 682.03L117.082 692.607L124.917 686.393L110.306 667.97Z\"\n fill=\"#BE0A2D\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M126.699 697.82C130.398 696.639 135.625 696.555 139.536 700.465C142.513 703.442 143.561 707.008 143.2 710.491C142.868 713.704 141.382 716.527 139.939 718.636C138.458 720.8 136.745 722.612 135.453 723.851C134.797 724.48 134.224 724.986 133.807 725.342C133.597 725.52 133.426 725.661 133.3 725.763C133.275 725.784 133.251 725.802 133.23 725.82C133.198 725.845 133.171 725.867 133.147 725.886L133.099 725.924L133.082 725.937L133.072 725.945C133.072 725.945 133.07 725.947 130 722C126.93 718.053 126.928 718.055 126.928 718.055L126.93 718.054C126.936 718.049 126.944 718.042 126.955 718.034C126.967 718.024 126.982 718.012 127 717.997C127.068 717.942 127.179 717.85 127.325 717.727C127.616 717.479 128.039 717.106 128.531 716.634C129.537 715.669 130.73 714.387 131.686 712.989C132.681 711.536 133.164 710.328 133.253 709.462C133.315 708.868 133.238 708.309 132.465 707.536C132.114 707.186 131.562 706.779 129.673 707.367C127.637 708.002 125.11 709.556 122.435 711.704C119.836 713.791 117.434 716.161 115.658 718.045L115.64 718.064C116.773 718.626 117.862 719.376 118.891 720.326C123.284 724.381 123.118 729.847 121.736 733.874C120.372 737.849 117.577 741.497 114.659 743.876C112.019 746.028 108.545 748.129 104.82 748.941C100.906 749.793 96.2561 749.245 92.7656 745.325C89.6679 741.846 89.2782 737.488 89.8993 734.01C90.5129 730.574 92.2114 727.256 94.4343 724.995C94.4343 724.995 95.5 722.5 110 710.5C124.5 698.5 123 699 126.699 697.82ZM101.545 732.026C104.586 729.026 107.047 727.481 108.828 726.961C110.232 726.552 111.11 726.753 112.109 727.674C112.486 728.022 112.943 728.689 112.277 730.628C111.594 732.619 110.004 734.77 108.341 736.124C106.4 737.706 104.339 738.811 102.692 739.17C101.233 739.487 100.674 739.169 100.234 738.675C99.8047 738.193 99.4699 737.301 99.7435 735.769C100.022 734.21 100.825 732.771 101.545 732.026Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M141 730C144.617 733.452 144.615 733.454 144.615 733.454L144.613 733.456L144.612 733.457C144.62 733.449 144.637 733.431 144.663 733.405C144.716 733.352 144.804 733.265 144.923 733.151C145.164 732.921 145.528 732.584 145.988 732.192C146.928 731.393 148.182 730.442 149.547 729.687C152.614 727.989 154.131 728.266 155.098 729.164C156.463 730.432 156.765 731.708 156.523 733.201C156.238 734.96 155.124 737.11 153.284 739.155C150.134 742.655 148.167 742.66 146.964 742.435C144.995 742.068 142.973 740.661 139.941 738.456L133.554 746.123C136.299 748.733 137.289 751.127 137.381 753.1C137.472 755.059 136.717 757.451 134.284 760.155C132.591 762.036 130.635 763.159 128.972 763.494C127.486 763.793 126.163 763.513 124.911 762.345C124.17 761.652 123.951 760.99 123.961 760.134C123.972 759.081 124.364 757.702 125.16 756.111C125.932 754.567 126.927 753.134 127.766 752.056C128.178 751.527 128.534 751.106 128.78 750.826C128.902 750.687 128.996 750.584 129.053 750.521L129.095 750.476L129.112 750.458C129.112 750.458 129.11 750.459 125.5 747C121.89 743.54 121.888 743.543 121.888 743.543L121.88 743.551L121.865 743.567L121.823 743.611C121.79 743.646 121.746 743.693 121.692 743.752C121.585 743.868 121.439 744.03 121.262 744.232C120.908 744.636 120.424 745.207 119.875 745.913C118.792 747.304 117.381 749.308 116.215 751.639C115.073 753.923 113.996 756.857 113.961 760.023C113.924 763.386 115.08 766.848 118.088 769.655C121.896 773.209 126.573 774.178 130.947 773.297C135.145 772.452 138.909 769.964 141.717 766.845C145.45 762.696 147.612 757.838 147.37 752.635C147.368 752.594 147.366 752.552 147.364 752.511C151.993 752.659 156.5 750.53 160.717 745.845C163.376 742.89 165.707 739.042 166.394 734.801C167.124 730.295 165.926 725.571 161.902 721.836C155.87 716.234 148.637 718.761 144.704 720.938C142.568 722.12 140.759 723.513 139.512 724.573C138.879 725.111 138.368 725.583 138.007 725.929C137.826 726.102 137.681 726.245 137.576 726.35C137.524 726.403 137.481 726.446 137.449 726.479L137.408 726.521L137.394 726.536L137.388 726.542L137.386 726.545C137.386 726.545 137.383 726.547 141 730Z\"\n fill=\"#BE0A2D\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M160.5 757.5L162.036 754.923L159.836 753.611L134.165 784.416L135.614 786.318L138 784.5C135.614 786.318 135.615 786.32 135.615 786.32L135.616 786.322L135.62 786.326L135.629 786.338L135.656 786.373C135.671 786.392 135.689 786.416 135.711 786.443L135.746 786.487C135.82 786.58 135.925 786.71 136.058 786.868C136.323 787.183 136.702 787.617 137.175 788.112C138.107 789.087 139.469 790.368 141.099 791.442C142.699 792.497 144.794 793.51 147.149 793.614C149.665 793.725 152.132 792.779 154.204 790.535C160.315 783.915 164.991 777.813 169.419 771.774C171.111 769.467 171.357 766.97 170.731 764.714C170.148 762.611 168.848 760.823 167.612 759.474C166.348 758.094 164.959 756.965 163.915 756.195C163.387 755.805 162.931 755.496 162.603 755.281C162.438 755.173 162.304 755.088 162.208 755.028C162.16 754.998 162.121 754.974 162.092 754.957L162.056 754.935L162.044 754.928L162.038 754.924C162.038 754.924 162.036 754.923 160.5 757.5ZM144.401 786.433C143.492 785.834 142.654 785.103 141.966 784.427L161.034 761.545C161.739 762.105 162.505 762.781 163.188 763.526C164.127 764.552 164.727 765.514 164.95 766.318C165.13 766.968 165.089 767.533 164.581 768.226C160.209 774.187 155.685 780.085 149.796 786.465C148.867 787.471 148.085 787.65 147.413 787.62C146.58 787.583 145.551 787.191 144.401 786.433Z\"\n fill=\"#BE0A2D\"\n />\n <path\n d=\"M98.5001 607C98.5001 607 19.5001 653.499 11.0001 662C2.50003 670.5 98.5 798 192.5 845.5C286.5 893 319 907.5 418.5 913.5C518 919.5 623.833 897.322 730 824.5C801.196 775.665 886.5 671 881.5 663.5C876.5 656 792.5 609 792.5 609\"\n stroke=\"#BE0A2D\"\n strokeWidth=\"20\"\n />\n </svg>\n );\n } else if (name.toLowerCase() === \"563rdlabel\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 569 155\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <mask id=\"mask0_200_42\" style={{ maskType: \"alpha\" }} maskUnits=\"userSpaceOnUse\" x=\"352\" y=\"30\" width=\"142\" height=\"95\">\n <path\n d=\"M352 36C392.535 36 362.616 119 392.535 119C422.453 119 398.326 36 428.244 36C458.163 36 435 119 460.093 119C485.186 119 459.128 36.0004 493.872 36\"\n stroke=\"black\"\n strokeWidth=\"12\"\n />\n </mask>\n <g mask=\"url(#mask0_200_42)\">\n <rect x=\"346.209\" y=\"22.4878\" width=\"158.279\" height=\"108.093\" fill=\"url(#paint0_linear_200_42)\" />\n </g>\n <path\n d=\"M38.7273 125.273C33.3939 125.273 28.5909 124.212 24.3182 122.091C20.0455 119.97 16.6212 117.061 14.0455 113.364C11.4697 109.667 10.0606 105.455 9.81818 100.727H20.7273C21.1515 104.939 23.0606 108.424 26.4545 111.182C29.8788 113.909 33.9697 115.273 38.7273 115.273C42.5455 115.273 45.9394 114.379 48.9091 112.591C51.9091 110.803 54.2576 108.348 55.9545 105.227C57.6818 102.076 58.5455 98.5152 58.5455 94.5455C58.5455 90.4848 57.6515 86.8636 55.8636 83.6818C54.1061 80.4697 51.6818 77.9394 48.5909 76.0909C45.5 74.2424 41.9697 73.303 38 73.2727C35.1515 73.2424 32.2273 73.6818 29.2273 74.5909C26.2273 75.4697 23.7576 76.6061 21.8182 78L11.2727 76.7273L16.9091 30.9091H65.2727V40.9091H26.3636L23.0909 68.3636H23.6364C25.5455 66.8485 27.9394 65.5909 30.8182 64.5909C33.697 63.5909 36.697 63.0909 39.8182 63.0909C45.5152 63.0909 50.5909 64.4545 55.0455 67.1818C59.5303 69.8788 63.0455 73.5758 65.5909 78.2727C68.1667 82.9697 69.4545 88.3333 69.4545 94.3636C69.4545 100.303 68.1212 105.606 65.4545 110.273C62.8182 114.909 59.1818 118.576 54.5455 121.273C49.9091 123.939 44.6364 125.273 38.7273 125.273ZM118.42 125.273C114.602 125.212 110.784 124.485 106.966 123.091C103.148 121.697 99.6629 119.348 96.5114 116.045C93.3598 112.712 90.8295 108.212 88.9205 102.545C87.0114 96.8485 86.0568 89.697 86.0568 81.0909C86.0568 72.8485 86.8295 65.5455 88.375 59.1818C89.9205 52.7879 92.1629 47.4091 95.1023 43.0455C98.0417 38.6515 101.587 35.3182 105.739 33.0454C109.92 30.7727 114.633 29.6364 119.875 29.6364C125.087 29.6364 129.723 30.6818 133.784 32.7727C137.875 34.8333 141.208 37.7121 143.784 41.4091C146.36 45.1061 148.027 49.3636 148.784 54.1818H137.693C136.663 50 134.663 46.5303 131.693 43.7727C128.723 41.0151 124.784 39.6364 119.875 39.6364C112.663 39.6364 106.981 42.7727 102.83 49.0455C98.7083 55.3182 96.6326 64.1212 96.6023 75.4545H97.3295C99.0265 72.8788 101.042 70.6818 103.375 68.8636C105.739 67.0152 108.345 65.5909 111.193 64.5909C114.042 63.5909 117.057 63.0909 120.239 63.0909C125.572 63.0909 130.451 64.4242 134.875 67.0909C139.299 69.7273 142.845 73.3788 145.511 78.0455C148.178 82.6818 149.511 88 149.511 94C149.511 99.7576 148.223 105.03 145.648 109.818C143.072 114.576 139.451 118.364 134.784 121.182C130.148 123.97 124.693 125.333 118.42 125.273ZM118.42 115.273C122.239 115.273 125.663 114.318 128.693 112.409C131.754 110.5 134.163 107.939 135.92 104.727C137.708 101.515 138.602 97.9394 138.602 94C138.602 90.1515 137.739 86.6515 136.011 83.5C134.314 80.3182 131.966 77.7879 128.966 75.9091C125.996 74.0303 122.602 73.0909 118.784 73.0909C115.905 73.0909 113.223 73.6667 110.739 74.8182C108.254 75.9394 106.072 77.4848 104.193 79.4545C102.345 81.4242 100.89 83.6818 99.8295 86.2273C98.7689 88.7424 98.2386 91.3939 98.2386 94.1818C98.2386 97.8788 99.1023 101.333 100.83 104.545C102.587 107.758 104.981 110.348 108.011 112.318C111.072 114.288 114.542 115.273 118.42 115.273ZM198.841 125.273C192.841 125.273 187.492 124.242 182.795 122.182C178.129 120.121 174.417 117.258 171.659 113.591C168.932 109.894 167.447 105.606 167.205 100.727H178.659C178.902 103.727 179.932 106.318 181.75 108.5C183.568 110.652 185.947 112.318 188.886 113.5C191.826 114.682 195.083 115.273 198.659 115.273C202.659 115.273 206.205 114.576 209.295 113.182C212.386 111.788 214.811 109.848 216.568 107.364C218.326 104.879 219.205 102 219.205 98.7273C219.205 95.303 218.356 92.2879 216.659 89.6818C214.962 87.0455 212.477 84.9848 209.205 83.5C205.932 82.0151 201.932 81.2727 197.205 81.2727H189.75V71.2727H197.205C200.902 71.2727 204.144 70.6061 206.932 69.2727C209.75 67.9394 211.947 66.0606 213.523 63.6364C215.129 61.2121 215.932 58.3636 215.932 55.0909C215.932 51.9394 215.235 49.197 213.841 46.8636C212.447 44.5303 210.477 42.7121 207.932 41.4091C205.417 40.1061 202.447 39.4545 199.023 39.4545C195.811 39.4545 192.78 40.0455 189.932 41.2273C187.114 42.3788 184.811 44.0606 183.023 46.2727C181.235 48.4545 180.265 51.0909 180.114 54.1818H169.205C169.386 49.303 170.856 45.0303 173.614 41.3636C176.371 37.6667 179.977 34.7879 184.432 32.7273C188.917 30.6667 193.841 29.6364 199.205 29.6364C204.962 29.6364 209.902 30.803 214.023 33.1364C218.144 35.4394 221.311 38.4848 223.523 42.2727C225.735 46.0606 226.841 50.1515 226.841 54.5455C226.841 59.7879 225.462 64.2576 222.705 67.9545C219.977 71.6515 216.265 74.2121 211.568 75.6364V76.3636C217.447 77.3333 222.038 79.8333 225.341 83.8636C228.644 87.8636 230.295 92.8182 230.295 98.7273C230.295 103.788 228.917 108.333 226.159 112.364C223.432 116.364 219.705 119.515 214.977 121.818C210.25 124.121 204.871 125.273 198.841 125.273ZM286.523 124V30.9091H342.705V40.9091H297.795V72.3636H339.795V82.3636H297.795V114H343.432V124H286.523Z\"\n fill=\"white\"\n />\n <path\n d=\"M549.182 54.1818C548.636 49.5758 546.424 46 542.545 43.4545C538.667 40.9091 533.909 39.6364 528.273 39.6364C524.152 39.6364 520.545 40.303 517.455 41.6364C514.394 42.9697 512 44.803 510.273 47.1364C508.576 49.4697 507.727 52.1212 507.727 55.0909C507.727 57.5758 508.318 59.7121 509.5 61.5C510.712 63.2576 512.258 64.7273 514.136 65.9091C516.015 67.0606 517.985 68.0151 520.045 68.7727C522.106 69.5 524 70.0909 525.727 70.5455L535.182 73.0909C537.606 73.7273 540.303 74.6061 543.273 75.7273C546.273 76.8485 549.136 78.3788 551.864 80.3182C554.621 82.2273 556.894 84.6818 558.682 87.6818C560.47 90.6818 561.364 94.3636 561.364 98.7273C561.364 103.758 560.045 108.303 557.409 112.364C554.803 116.424 550.985 119.652 545.955 122.045C540.955 124.439 534.879 125.636 527.727 125.636C521.061 125.636 515.288 124.561 510.409 122.409C505.561 120.258 501.742 117.258 498.955 113.409C496.197 109.561 494.636 105.091 494.273 100H505.909C506.212 103.515 507.394 106.424 509.455 108.727C511.545 111 514.182 112.697 517.364 113.818C520.576 114.909 524.03 115.455 527.727 115.455C532.03 115.455 535.894 114.758 539.318 113.364C542.742 111.939 545.455 109.97 547.455 107.455C549.455 104.909 550.455 101.939 550.455 98.5455C550.455 95.4545 549.591 92.9394 547.864 91C546.136 89.0606 543.864 87.4848 541.045 86.2727C538.227 85.0606 535.182 84 531.909 83.0909L520.455 79.8182C513.182 77.7273 507.424 74.7424 503.182 70.8636C498.939 66.9848 496.818 61.9091 496.818 55.6364C496.818 50.4242 498.227 45.8788 501.045 42C503.894 38.0909 507.712 35.0606 512.5 32.9091C517.318 30.7273 522.697 29.6364 528.636 29.6364C534.636 29.6364 539.97 30.7121 544.636 32.8636C549.303 34.9848 553 37.8939 555.727 41.5909C558.485 45.2879 559.939 49.4848 560.091 54.1818H549.182Z\"\n fill=\"white\"\n />\n <defs>\n <linearGradient id=\"paint0_linear_200_42\" x1=\"346.209\" y1=\"61.9323\" x2=\"504.489\" y2=\"61.6548\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0729167\" stopColor=\"#FF0F16\" />\n <stop offset=\"0.234375\" stopColor=\"#FF8224\" />\n <stop offset=\"0.390625\" stopColor=\"#FFD036\" />\n <stop offset=\"0.513869\" stopColor=\"#2DFF68\" />\n <stop offset=\"0.690271\" stopColor=\"#1FACFC\" />\n <stop offset=\"0.75\" stopColor=\"#602BB7\" />\n <stop offset=\"0.947917\" stopColor=\"#B200CF\" />\n </linearGradient>\n </defs>\n </svg>\n );\n } else if (name.toLowerCase() === \"arrow\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 537 75\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M463.752 36.6792L454.667 18.8711C484.693 29.9946 507.467 34.9422 525.489 38.8573L525.489 38.8573L525.489 38.8573C529.106 39.6432 532.533 40.3875 535.787 41.1318C529.599 42.5471 522.791 43.7374 515.224 45.0603C498.988 47.899 479.26 51.3482 454.667 58.9404L463.185 45.5835L93.0048 45.5835L74.8192 56.9018L4 58.2375L24.3316 45.5835H22.0269V36.6792H25.4604L4.00006 23.3228L74.8192 24.6584L94.1335 36.6792L463.752 36.6792Z\"\n fill=\"white\"\n />\n <path\n d=\"M454.667 18.8711L455.015 17.9334L452.612 17.0434L453.777 19.3256L454.667 18.8711ZM463.752 36.6792V37.6792H465.385L464.643 36.2248L463.752 36.6792ZM525.489 38.8573L525.731 37.8871L525.716 37.8833L525.701 37.8801L525.489 38.8573ZM525.489 38.8573L525.246 39.8274L525.254 39.8294L525.262 39.8312L525.489 38.8573ZM525.489 38.8573L525.262 39.8312L525.269 39.8329L525.276 39.8345L525.489 38.8573ZM535.787 41.1318L536.01 42.1067L536.01 40.157L535.787 41.1318ZM515.224 45.0603L515.052 44.0752L515.052 44.0752L515.224 45.0603ZM454.667 58.9404L453.824 58.4027L452.359 60.6995L454.962 59.8959L454.667 58.9404ZM463.185 45.5835L464.028 46.1212L465.009 44.5835H463.185V45.5835ZM93.0048 45.5835V44.5835H92.719L92.4764 44.7345L93.0048 45.5835ZM74.8192 56.9018L74.838 57.9016L75.1136 57.8964L75.3475 57.7508L74.8192 56.9018ZM4 58.2375L3.4716 57.3885L0.391096 59.3057L4.01886 59.2373L4 58.2375ZM24.3316 45.5835L24.86 46.4325L27.8309 44.5835H24.3316V45.5835ZM22.0269 45.5835H21.0269V46.5835H22.0269V45.5835ZM22.0269 36.6792V35.6792L21.0269 35.6792V36.6792L22.0269 36.6792ZM25.4604 36.6792V37.6792H28.9597L25.9888 35.8302L25.4604 36.6792ZM4.00006 23.3228L4.01892 22.323L0.391155 22.2545L3.47166 24.1718L4.00006 23.3228ZM74.8192 24.6584L75.3476 23.8094L75.1136 23.6638L74.8381 23.6586L74.8192 24.6584ZM94.1335 36.6792L93.6051 37.5282L93.8477 37.6792H94.1335V36.6792ZM453.777 19.3256L462.862 37.1337L464.643 36.2248L455.558 18.4167L453.777 19.3256ZM525.701 37.8801C507.689 33.967 484.971 29.0313 455.015 17.9334L454.32 19.8088C484.415 30.9579 507.246 35.9174 525.276 39.8345L525.701 37.8801ZM525.731 37.8871L525.731 37.8871L525.246 39.8274L525.246 39.8274L525.731 37.8871ZM525.716 37.8834L525.716 37.8834L525.262 39.8312L525.262 39.8312L525.716 37.8834ZM536.01 40.157C532.749 39.4113 529.318 38.6658 525.701 37.8801L525.276 39.8345C528.895 40.6207 532.316 41.3638 535.564 42.1067L536.01 40.157ZM515.396 46.0453C522.956 44.7236 529.791 43.5288 536.01 42.1067L535.564 40.157C529.406 41.5654 522.625 42.7512 515.052 44.0752L515.396 46.0453ZM454.962 59.8959C479.49 52.3237 499.165 48.8833 515.396 46.0453L515.052 44.0752C498.811 46.9147 479.03 50.3727 454.372 57.9849L454.962 59.8959ZM462.342 45.0458L453.824 58.4027L455.51 59.4781L464.028 46.1212L462.342 45.0458ZM93.0048 46.5835L463.185 46.5835V44.5835L93.0048 44.5835V46.5835ZM75.3475 57.7508L93.5332 46.4325L92.4764 44.7345L74.2908 56.0528L75.3475 57.7508ZM4.01886 59.2373L74.838 57.9016L74.8003 55.902L3.98114 57.2376L4.01886 59.2373ZM23.8032 44.7345L3.4716 57.3885L4.5284 59.0865L24.86 46.4325L23.8032 44.7345ZM22.0269 46.5835H24.3316V44.5835H22.0269V46.5835ZM21.0269 36.6792V45.5835H23.0269V36.6792L21.0269 36.6792ZM25.4604 35.6792H22.0269V37.6792H25.4604V35.6792ZM3.47166 24.1718L24.932 37.5282L25.9888 35.8302L4.52846 22.4738L3.47166 24.1718ZM74.8381 23.6586L4.01892 22.323L3.9812 24.3226L74.8004 25.6582L74.8381 23.6586ZM94.6619 35.8302L75.3476 23.8094L74.2908 25.5074L93.6051 37.5282L94.6619 35.8302ZM463.752 35.6792L94.1335 35.6792V37.6792L463.752 37.6792V35.6792Z\"\n fill=\"black\"\n />\n <mask id=\"mask0_5927_1148\" style={{ maskType: \"alpha\" }} maskUnits=\"userSpaceOnUse\" x=\"340\" y=\"0\" width=\"112\" height=\"75\">\n <path\n d=\"M340.886 5.80078C372.369 5.80078 349.132 69.4857 372.369 69.4857C395.607 69.4857 376.867 5.80078 400.104 5.80078C423.342 5.80078 405.351 69.4857 424.841 69.4857C444.33 69.4857 424.091 5.8011 451.076 5.80078\"\n stroke=\"black\"\n strokeWidth=\"10\"\n />\n </mask>\n <g mask=\"url(#mask0_5927_1148)\">\n <rect x=\"336.394\" y=\"-4.56934\" width=\"122.933\" height=\"82.9385\" fill=\"url(#paint0_linear_5927_1148)\" />\n </g>\n <mask id=\"path-5-outside-1_5927_1148\" maskUnits=\"userSpaceOnUse\" x=\"88.731\" y=\"2.51465\" width=\"260\" height=\"71\" fill=\"black\">\n <rect fill=\"white\" x=\"88.731\" y=\"2.51465\" width=\"260\" height=\"71\" />\n <path d=\"M91.821 69.5146L112.791 12.9946C113.811 10.4146 115.281 8.52465 117.201 7.32464C119.121 6.06465 121.311 5.43465 123.771 5.43465C126.291 5.43465 128.511 6.03465 130.431 7.23465C132.411 8.43464 133.881 10.3246 134.841 12.9046L155.901 69.5146H144.111L139.251 55.5646H108.111L103.071 69.5146H91.821ZM111.351 46.0246H136.011L125.931 16.5946C125.691 15.9946 125.391 15.5446 125.031 15.2446C124.731 14.9446 124.341 14.7946 123.861 14.7946C123.381 14.7946 122.991 14.9746 122.691 15.3346C122.391 15.6346 122.151 16.0546 121.971 16.5946L111.351 46.0246ZM161.231 69.5146V6.51464H189.131C193.151 6.51464 196.811 7.41465 200.111 9.21465C203.471 10.9546 206.141 13.4146 208.121 16.5946C210.101 19.7746 211.091 23.4646 211.091 27.6646C211.091 31.8646 210.041 35.5846 207.941 38.8246C205.901 42.0046 203.171 44.4646 199.751 46.2046L205.961 57.9946C206.321 58.6546 206.741 59.1646 207.221 59.5246C207.701 59.8246 208.331 59.9746 209.111 59.9746H214.421V69.5146H207.491C205.031 69.5146 202.841 68.9146 200.921 67.7146C199.001 66.4546 197.471 64.8046 196.331 62.7646L188.951 48.6346C188.351 48.6946 187.721 48.7246 187.061 48.7246C186.461 48.7246 185.861 48.7246 185.261 48.7246H171.941V69.5146H161.231ZM171.941 39.2746H187.781C190.061 39.2746 192.161 38.8246 194.081 37.9246C196.001 37.0246 197.501 35.7046 198.581 33.9646C199.721 32.1646 200.291 30.0646 200.291 27.6646C200.291 25.2046 199.721 23.1046 198.581 21.3646C197.441 19.6246 195.941 18.3046 194.081 17.4046C192.221 16.4446 190.151 15.9646 187.871 15.9646H171.941V39.2746ZM222.403 69.5146V6.51464H250.303C254.323 6.51464 257.983 7.41465 261.283 9.21465C264.643 10.9546 267.313 13.4146 269.293 16.5946C271.273 19.7746 272.263 23.4646 272.263 27.6646C272.263 31.8646 271.213 35.5846 269.113 38.8246C267.073 42.0046 264.343 44.4646 260.923 46.2046L267.133 57.9946C267.493 58.6546 267.913 59.1646 268.393 59.5246C268.873 59.8246 269.503 59.9746 270.283 59.9746H275.593V69.5146H268.663C266.203 69.5146 264.013 68.9146 262.093 67.7146C260.173 66.4546 258.643 64.8046 257.503 62.7646L250.123 48.6346C249.523 48.6946 248.893 48.7246 248.233 48.7246C247.633 48.7246 247.033 48.7246 246.433 48.7246H233.113V69.5146H222.403ZM233.113 39.2746H248.953C251.233 39.2746 253.333 38.8246 255.253 37.9246C257.173 37.0246 258.673 35.7046 259.753 33.9646C260.893 32.1646 261.463 30.0646 261.463 27.6646C261.463 25.2046 260.893 23.1046 259.753 21.3646C258.613 19.6246 257.113 18.3046 255.253 17.4046C253.393 16.4446 251.323 15.9646 249.043 15.9646H233.113V39.2746ZM313.094 70.6846C308.114 70.6846 303.584 69.8446 299.504 68.1646C295.484 66.4246 292.034 64.0546 289.154 61.0546C286.334 58.0546 284.144 54.5746 282.584 50.6146C281.024 46.6546 280.244 42.4246 280.244 37.9246C280.244 33.4246 281.024 29.2246 282.584 25.3246C284.144 21.3646 286.334 17.8846 289.154 14.8846C292.034 11.8846 295.484 9.54465 299.504 7.86464C303.584 6.18464 308.114 5.34464 313.094 5.34464C318.134 5.34464 322.664 6.18464 326.684 7.86464C330.704 9.54465 334.154 11.8846 337.034 14.8846C339.914 17.8846 342.134 21.3646 343.694 25.3246C345.254 29.2246 346.034 33.4246 346.034 37.9246C346.034 42.4246 345.254 46.6546 343.694 50.6146C342.134 54.5746 339.914 58.0546 337.034 61.0546C334.154 64.0546 330.704 66.4246 326.684 68.1646C322.664 69.8446 318.134 70.6846 313.094 70.6846ZM313.094 61.1446C316.274 61.1446 319.214 60.5746 321.914 59.4346C324.614 58.2946 326.954 56.6746 328.934 54.5746C330.974 52.4146 332.534 49.9246 333.614 47.1046C334.694 44.2846 335.234 41.2246 335.234 37.9246C335.234 34.6246 334.694 31.5646 333.614 28.7446C332.534 25.9246 330.974 23.4946 328.934 21.4546C326.954 19.3546 324.614 17.7346 321.914 16.5946C319.214 15.3946 316.274 14.7946 313.094 14.7946C309.914 14.7946 306.974 15.3946 304.274 16.5946C301.634 17.7346 299.294 19.3546 297.254 21.4546C295.274 23.4946 293.714 25.9246 292.574 28.7446C291.494 31.5646 290.954 34.6246 290.954 37.9246C290.954 41.2846 291.494 44.3746 292.574 47.1946C293.714 49.9546 295.274 52.4146 297.254 54.5746C299.294 56.6746 301.634 58.2946 304.274 59.4346C306.974 60.5746 309.914 61.1446 313.094 61.1446Z\" />\n </mask>\n <path\n d=\"M91.821 69.5146L112.791 12.9946C113.811 10.4146 115.281 8.52465 117.201 7.32464C119.121 6.06465 121.311 5.43465 123.771 5.43465C126.291 5.43465 128.511 6.03465 130.431 7.23465C132.411 8.43464 133.881 10.3246 134.841 12.9046L155.901 69.5146H144.111L139.251 55.5646H108.111L103.071 69.5146H91.821ZM111.351 46.0246H136.011L125.931 16.5946C125.691 15.9946 125.391 15.5446 125.031 15.2446C124.731 14.9446 124.341 14.7946 123.861 14.7946C123.381 14.7946 122.991 14.9746 122.691 15.3346C122.391 15.6346 122.151 16.0546 121.971 16.5946L111.351 46.0246ZM161.231 69.5146V6.51464H189.131C193.151 6.51464 196.811 7.41465 200.111 9.21465C203.471 10.9546 206.141 13.4146 208.121 16.5946C210.101 19.7746 211.091 23.4646 211.091 27.6646C211.091 31.8646 210.041 35.5846 207.941 38.8246C205.901 42.0046 203.171 44.4646 199.751 46.2046L205.961 57.9946C206.321 58.6546 206.741 59.1646 207.221 59.5246C207.701 59.8246 208.331 59.9746 209.111 59.9746H214.421V69.5146H207.491C205.031 69.5146 202.841 68.9146 200.921 67.7146C199.001 66.4546 197.471 64.8046 196.331 62.7646L188.951 48.6346C188.351 48.6946 187.721 48.7246 187.061 48.7246C186.461 48.7246 185.861 48.7246 185.261 48.7246H171.941V69.5146H161.231ZM171.941 39.2746H187.781C190.061 39.2746 192.161 38.8246 194.081 37.9246C196.001 37.0246 197.501 35.7046 198.581 33.9646C199.721 32.1646 200.291 30.0646 200.291 27.6646C200.291 25.2046 199.721 23.1046 198.581 21.3646C197.441 19.6246 195.941 18.3046 194.081 17.4046C192.221 16.4446 190.151 15.9646 187.871 15.9646H171.941V39.2746ZM222.403 69.5146V6.51464H250.303C254.323 6.51464 257.983 7.41465 261.283 9.21465C264.643 10.9546 267.313 13.4146 269.293 16.5946C271.273 19.7746 272.263 23.4646 272.263 27.6646C272.263 31.8646 271.213 35.5846 269.113 38.8246C267.073 42.0046 264.343 44.4646 260.923 46.2046L267.133 57.9946C267.493 58.6546 267.913 59.1646 268.393 59.5246C268.873 59.8246 269.503 59.9746 270.283 59.9746H275.593V69.5146H268.663C266.203 69.5146 264.013 68.9146 262.093 67.7146C260.173 66.4546 258.643 64.8046 257.503 62.7646L250.123 48.6346C249.523 48.6946 248.893 48.7246 248.233 48.7246C247.633 48.7246 247.033 48.7246 246.433 48.7246H233.113V69.5146H222.403ZM233.113 39.2746H248.953C251.233 39.2746 253.333 38.8246 255.253 37.9246C257.173 37.0246 258.673 35.7046 259.753 33.9646C260.893 32.1646 261.463 30.0646 261.463 27.6646C261.463 25.2046 260.893 23.1046 259.753 21.3646C258.613 19.6246 257.113 18.3046 255.253 17.4046C253.393 16.4446 251.323 15.9646 249.043 15.9646H233.113V39.2746ZM313.094 70.6846C308.114 70.6846 303.584 69.8446 299.504 68.1646C295.484 66.4246 292.034 64.0546 289.154 61.0546C286.334 58.0546 284.144 54.5746 282.584 50.6146C281.024 46.6546 280.244 42.4246 280.244 37.9246C280.244 33.4246 281.024 29.2246 282.584 25.3246C284.144 21.3646 286.334 17.8846 289.154 14.8846C292.034 11.8846 295.484 9.54465 299.504 7.86464C303.584 6.18464 308.114 5.34464 313.094 5.34464C318.134 5.34464 322.664 6.18464 326.684 7.86464C330.704 9.54465 334.154 11.8846 337.034 14.8846C339.914 17.8846 342.134 21.3646 343.694 25.3246C345.254 29.2246 346.034 33.4246 346.034 37.9246C346.034 42.4246 345.254 46.6546 343.694 50.6146C342.134 54.5746 339.914 58.0546 337.034 61.0546C334.154 64.0546 330.704 66.4246 326.684 68.1646C322.664 69.8446 318.134 70.6846 313.094 70.6846ZM313.094 61.1446C316.274 61.1446 319.214 60.5746 321.914 59.4346C324.614 58.2946 326.954 56.6746 328.934 54.5746C330.974 52.4146 332.534 49.9246 333.614 47.1046C334.694 44.2846 335.234 41.2246 335.234 37.9246C335.234 34.6246 334.694 31.5646 333.614 28.7446C332.534 25.9246 330.974 23.4946 328.934 21.4546C326.954 19.3546 324.614 17.7346 321.914 16.5946C319.214 15.3946 316.274 14.7946 313.094 14.7946C309.914 14.7946 306.974 15.3946 304.274 16.5946C301.634 17.7346 299.294 19.3546 297.254 21.4546C295.274 23.4946 293.714 25.9246 292.574 28.7446C291.494 31.5646 290.954 34.6246 290.954 37.9246C290.954 41.2846 291.494 44.3746 292.574 47.1946C293.714 49.9546 295.274 52.4146 297.254 54.5746C299.294 56.6746 301.634 58.2946 304.274 59.4346C306.974 60.5746 309.914 61.1446 313.094 61.1446Z\"\n fill=\"white\"\n />\n <path\n d=\"M91.821 69.5146L89.9459 68.819L88.9457 71.5146H91.821V69.5146ZM112.791 12.9946L110.931 12.2593L110.923 12.2791L110.916 12.2989L112.791 12.9946ZM117.201 7.32464L118.261 9.02064L118.28 9.0089L118.298 8.99674L117.201 7.32464ZM130.431 7.23465L129.371 8.93064L129.383 8.93792L129.394 8.94504L130.431 7.23465ZM134.841 12.9046L136.715 12.2073L136.715 12.2072L134.841 12.9046ZM155.901 69.5146V71.5146H158.779L157.775 68.8173L155.901 69.5146ZM144.111 69.5146L142.222 70.1726L142.69 71.5146H144.111V69.5146ZM139.251 55.5646L141.14 54.9067L140.672 53.5646H139.251V55.5646ZM108.111 55.5646V53.5646H106.707L106.23 54.8851L108.111 55.5646ZM103.071 69.5146V71.5146H104.475L104.952 70.1942L103.071 69.5146ZM111.351 46.0246L109.47 45.3458L108.503 48.0246H111.351V46.0246ZM136.011 46.0246V48.0246H138.81L137.903 45.3766L136.011 46.0246ZM125.931 16.5946L127.823 15.9466L127.807 15.8988L127.788 15.8519L125.931 16.5946ZM125.031 15.2446L123.617 16.6589L123.681 16.723L123.751 16.7811L125.031 15.2446ZM122.691 15.3346L124.105 16.7488L124.169 16.6847L124.227 16.615L122.691 15.3346ZM121.971 16.5946L123.852 17.2735L123.861 17.2504L123.868 17.2271L121.971 16.5946ZM93.6961 70.2103L114.666 13.6903L110.916 12.2989L89.9459 68.819L93.6961 70.2103ZM114.651 13.73C115.55 11.4561 116.779 9.94709 118.261 9.02064L116.141 5.62865C113.783 7.10221 112.072 9.37318 110.931 12.2593L114.651 13.73ZM118.298 8.99674C119.869 7.96608 121.672 7.43465 123.771 7.43465V3.43465C120.95 3.43465 118.373 4.16321 116.104 5.65255L118.298 8.99674ZM123.771 7.43465C125.96 7.43465 127.804 7.95125 129.371 8.93064L131.491 5.53865C129.218 4.11804 126.622 3.43465 123.771 3.43465V7.43465ZM129.394 8.94504C130.92 9.8694 132.133 11.3616 132.967 13.6021L136.715 12.2072C135.629 9.28767 133.902 6.99989 131.468 5.52425L129.394 8.94504ZM132.966 13.602L154.026 70.212L157.775 68.8173L136.715 12.2073L132.966 13.602ZM155.901 67.5146H144.111V71.5146H155.901V67.5146ZM146 68.8567L141.14 54.9067L137.362 56.2226L142.222 70.1726L146 68.8567ZM139.251 53.5646H108.111V57.5646H139.251V53.5646ZM106.23 54.8851L101.19 68.8351L104.952 70.1942L109.992 56.2442L106.23 54.8851ZM103.071 67.5146H91.821V71.5146H103.071V67.5146ZM111.351 48.0246H136.011V44.0246H111.351V48.0246ZM137.903 45.3766L127.823 15.9466L124.039 17.2427L134.119 46.6727L137.903 45.3766ZM127.788 15.8519C127.469 15.0546 127.005 14.2861 126.311 13.7082L123.751 16.7811C123.777 16.8032 123.913 16.9347 124.074 17.3374L127.788 15.8519ZM126.445 13.8304C125.72 13.1049 124.795 12.7946 123.861 12.7946V16.7946C123.892 16.7946 123.861 16.799 123.795 16.7738C123.725 16.7468 123.661 16.7036 123.617 16.6589L126.445 13.8304ZM123.861 12.7946C122.804 12.7946 121.845 13.2256 121.155 14.0543L124.227 16.615C124.205 16.6421 124.145 16.7001 124.047 16.7456C123.949 16.7904 123.876 16.7946 123.861 16.7946V12.7946ZM121.277 13.9204C120.695 14.5018 120.32 15.2236 120.074 15.9622L123.868 17.2271C123.982 16.8857 124.087 16.7675 124.105 16.7488L121.277 13.9204ZM120.09 15.9158L109.47 45.3458L113.232 46.7035L123.852 17.2735L120.09 15.9158ZM161.231 69.5146H159.231V71.5146H161.231V69.5146ZM161.231 6.51464V4.51464H159.231V6.51464H161.231ZM200.111 9.21465L199.153 10.9704L199.172 10.9807L199.191 10.9906L200.111 9.21465ZM208.121 16.5946L206.423 17.6518L206.423 17.6518L208.121 16.5946ZM207.941 38.8246L206.262 37.7368L206.257 37.7447L207.941 38.8246ZM199.751 46.2046L198.844 44.4221L197.036 45.3419L197.981 47.1367L199.751 46.2046ZM205.961 57.9946L204.191 58.9267L204.198 58.9396L204.205 58.9523L205.961 57.9946ZM207.221 59.5246L206.021 61.1246L206.089 61.1756L206.161 61.2206L207.221 59.5246ZM214.421 59.9746H216.421V57.9746H214.421V59.9746ZM214.421 69.5146V71.5146H216.421V69.5146H214.421ZM200.921 67.7146L199.823 69.3867L199.842 69.3989L199.861 69.4106L200.921 67.7146ZM196.331 62.7646L194.558 63.6906L194.571 63.7156L194.585 63.7403L196.331 62.7646ZM188.951 48.6346L190.723 47.7087L190.097 46.51L188.752 46.6446L188.951 48.6346ZM171.941 48.7246V46.7246H169.941V48.7246H171.941ZM171.941 69.5146V71.5146H173.941V69.5146H171.941ZM171.941 39.2746H169.941V41.2746H171.941V39.2746ZM194.081 37.9246L194.93 39.7356L194.93 39.7356L194.081 37.9246ZM198.581 33.9646L196.891 32.8945L196.886 32.9022L196.881 32.9099L198.581 33.9646ZM198.581 21.3646L200.254 20.2686L200.254 20.2686L198.581 21.3646ZM194.081 17.4046L193.163 19.1819L193.186 19.1937L193.21 19.205L194.081 17.4046ZM171.941 15.9646V13.9646H169.941V15.9646H171.941ZM163.231 69.5146V6.51464H159.231V69.5146H163.231ZM161.231 8.51464H189.131V4.51464H161.231V8.51464ZM189.131 8.51464C192.84 8.51464 196.167 9.34176 199.153 10.9704L201.068 7.45886C197.454 5.48753 193.461 4.51464 189.131 4.51464V8.51464ZM199.191 10.9906C202.235 12.5671 204.635 14.7802 206.423 17.6518L209.818 15.5375C207.646 12.0491 204.706 9.34223 201.03 7.43866L199.191 10.9906ZM206.423 17.6518C208.182 20.4772 209.091 23.7917 209.091 27.6646H213.091C213.091 23.1375 212.019 19.0721 209.818 15.5375L206.423 17.6518ZM209.091 27.6646C209.091 31.5139 208.134 34.8492 206.262 37.7369L209.619 39.9124C211.947 36.3201 213.091 32.2154 213.091 27.6646H209.091ZM206.257 37.7447C204.412 40.6208 201.952 42.8405 198.844 44.4221L200.658 47.9872C204.389 46.0888 207.389 43.3885 209.624 39.9046L206.257 37.7447ZM197.981 47.1367L204.191 58.9267L207.73 57.0626L201.52 45.2726L197.981 47.1367ZM204.205 58.9523C204.668 59.8021 205.261 60.5551 206.021 61.1246L208.421 57.9246C208.22 57.7742 207.973 57.5072 207.716 57.0369L204.205 58.9523ZM206.161 61.2206C207.057 61.7809 208.092 61.9746 209.111 61.9746V57.9746C208.569 57.9746 208.344 57.8683 208.281 57.8287L206.161 61.2206ZM209.111 61.9746H214.421V57.9746H209.111V61.9746ZM212.421 59.9746V69.5146H216.421V59.9746H212.421ZM214.421 67.5146H207.491V71.5146H214.421V67.5146ZM207.491 67.5146C205.372 67.5146 203.555 67.0029 201.981 66.0187L199.861 69.4106C202.126 70.8264 204.689 71.5146 207.491 71.5146V67.5146ZM202.018 66.0426C200.372 64.9623 199.062 63.5532 198.077 61.789L194.585 63.7403C195.879 66.0561 197.629 67.947 199.823 69.3867L202.018 66.0426ZM198.103 61.8387L190.723 47.7087L187.178 49.5606L194.558 63.6906L198.103 61.8387ZM188.752 46.6446C188.224 46.6974 187.66 46.7246 187.061 46.7246V50.7246C187.781 50.7246 188.478 50.6919 189.15 50.6247L188.752 46.6446ZM187.061 46.7246C187.059 46.7246 187.058 46.7246 187.057 46.7246C187.056 46.7246 187.055 46.7246 187.054 46.7246C187.052 46.7246 187.051 46.7246 187.05 46.7246C187.049 46.7246 187.048 46.7246 187.047 46.7246C187.045 46.7246 187.044 46.7246 187.043 46.7246C187.042 46.7246 187.041 46.7246 187.04 46.7246C187.038 46.7246 187.037 46.7246 187.036 46.7246C187.035 46.7246 187.034 46.7246 187.033 46.7246C187.031 46.7246 187.03 46.7246 187.029 46.7246C187.028 46.7246 187.027 46.7246 187.025 46.7246C187.024 46.7246 187.023 46.7246 187.022 46.7246C187.021 46.7246 187.02 46.7246 187.018 46.7246C187.017 46.7246 187.016 46.7246 187.015 46.7246C187.014 46.7246 187.013 46.7246 187.011 46.7246C187.01 46.7246 187.009 46.7246 187.008 46.7246C187.007 46.7246 187.006 46.7246 187.004 46.7246C187.003 46.7246 187.002 46.7246 187.001 46.7246C187 46.7246 186.999 46.7246 186.997 46.7246C186.996 46.7246 186.995 46.7246 186.994 46.7246C186.993 46.7246 186.992 46.7246 186.99 46.7246C186.989 46.7246 186.988 46.7246 186.987 46.7246C186.986 46.7246 186.984 46.7246 186.983 46.7246C186.982 46.7246 186.981 46.7246 186.98 46.7246C186.979 46.7246 186.977 46.7246 186.976 46.7246C186.975 46.7246 186.974 46.7246 186.973 46.7246C186.972 46.7246 186.97 46.7246 186.969 46.7246C186.968 46.7246 186.967 46.7246 186.966 46.7246C186.965 46.7246 186.963 46.7246 186.962 46.7246C186.961 46.7246 186.96 46.7246 186.959 46.7246C186.958 46.7246 186.956 46.7246 186.955 46.7246C186.954 46.7246 186.953 46.7246 186.952 46.7246C186.95 46.7246 186.949 46.7246 186.948 46.7246C186.947 46.7246 186.946 46.7246 186.945 46.7246C186.943 46.7246 186.942 46.7246 186.941 46.7246C186.94 46.7246 186.939 46.7246 186.938 46.7246C186.936 46.7246 186.935 46.7246 186.934 46.7246C186.933 46.7246 186.932 46.7246 186.931 46.7246C186.929 46.7246 186.928 46.7246 186.927 46.7246C186.926 46.7246 186.925 46.7246 186.924 46.7246C186.922 46.7246 186.921 46.7246 186.92 46.7246C186.919 46.7246 186.918 46.7246 186.917 46.7246C186.915 46.7246 186.914 46.7246 186.913 46.7246C186.912 46.7246 186.911 46.7246 186.909 46.7246C186.908 46.7246 186.907 46.7246 186.906 46.7246C186.905 46.7246 186.904 46.7246 186.902 46.7246C186.901 46.7246 186.9 46.7246 186.899 46.7246C186.898 46.7246 186.897 46.7246 186.895 46.7246C186.894 46.7246 186.893 46.7246 186.892 46.7246C186.891 46.7246 186.89 46.7246 186.888 46.7246C186.887 46.7246 186.886 46.7246 186.885 46.7246C186.884 46.7246 186.883 46.7246 186.881 46.7246C186.88 46.7246 186.879 46.7246 186.878 46.7246C186.877 46.7246 186.875 46.7246 186.874 46.7246C186.873 46.7246 186.872 46.7246 186.871 46.7246C186.87 46.7246 186.868 46.7246 186.867 46.7246C186.866 46.7246 186.865 46.7246 186.864 46.7246C186.863 46.7246 186.861 46.7246 186.86 46.7246C186.859 46.7246 186.858 46.7246 186.857 46.7246C186.856 46.7246 186.854 46.7246 186.853 46.7246C186.852 46.7246 186.851 46.7246 186.85 46.7246C186.849 46.7246 186.847 46.7246 186.846 46.7246C186.845 46.7246 186.844 46.7246 186.843 46.7246C186.842 46.7246 186.84 46.7246 186.839 46.7246C186.838 46.7246 186.837 46.7246 186.836 46.7246C186.834 46.7246 186.833 46.7246 186.832 46.7246C186.831 46.7246 186.83 46.7246 186.829 46.7246C186.827 46.7246 186.826 46.7246 186.825 46.7246C186.824 46.7246 186.823 46.7246 186.822 46.7246C186.82 46.7246 186.819 46.7246 186.818 46.7246C186.817 46.7246 186.816 46.7246 186.815 46.7246C186.813 46.7246 186.812 46.7246 186.811 46.7246C186.81 46.7246 186.809 46.7246 186.808 46.7246C186.806 46.7246 186.805 46.7246 186.804 46.7246C186.803 46.7246 186.802 46.7246 186.8 46.7246C186.799 46.7246 186.798 46.7246 186.797 46.7246C186.796 46.7246 186.795 46.7246 186.793 46.7246C186.792 46.7246 186.791 46.7246 186.79 46.7246C186.789 46.7246 186.788 46.7246 186.786 46.7246C186.785 46.7246 186.784 46.7246 186.783 46.7246C186.782 46.7246 186.781 46.7246 186.779 46.7246C186.778 46.7246 186.777 46.7246 186.776 46.7246C186.775 46.7246 186.774 46.7246 186.772 46.7246C186.771 46.7246 186.77 46.7246 186.769 46.7246C186.768 46.7246 186.767 46.7246 186.765 46.7246C186.764 46.7246 186.763 46.7246 186.762 46.7246C186.761 46.7246 186.759 46.7246 186.758 46.7246C186.757 46.7246 186.756 46.7246 186.755 46.7246C186.754 46.7246 186.752 46.7246 186.751 46.7246C186.75 46.7246 186.749 46.7246 186.748 46.7246C186.747 46.7246 186.745 46.7246 186.744 46.7246C186.743 46.7246 186.742 46.7246 186.741 46.7246C186.74 46.7246 186.738 46.7246 186.737 46.7246C186.736 46.7246 186.735 46.7246 186.734 46.7246C186.733 46.7246 186.731 46.7246 186.73 46.7246C186.729 46.7246 186.728 46.7246 186.727 46.7246C186.725 46.7246 186.724 46.7246 186.723 46.7246C186.722 46.7246 186.721 46.7246 186.72 46.7246C186.718 46.7246 186.717 46.7246 186.716 46.7246C186.715 46.7246 186.714 46.7246 186.713 46.7246C186.711 46.7246 186.71 46.7246 186.709 46.7246C186.708 46.7246 186.707 46.7246 186.706 46.7246C186.704 46.7246 186.703 46.7246 186.702 46.7246C186.701 46.7246 186.7 46.7246 186.699 46.7246C186.697 46.7246 186.696 46.7246 186.695 46.7246C186.694 46.7246 186.693 46.7246 186.692 46.7246C186.69 46.7246 186.689 46.7246 186.688 46.7246C186.687 46.7246 186.686 46.7246 186.684 46.7246C186.683 46.7246 186.682 46.7246 186.681 46.7246C186.68 46.7246 186.679 46.7246 186.677 46.7246C186.676 46.7246 186.675 46.7246 186.674 46.7246C186.673 46.7246 186.672 46.7246 186.67 46.7246C186.669 46.7246 186.668 46.7246 186.667 46.7246C186.666 46.7246 186.665 46.7246 186.663 46.7246C186.662 46.7246 186.661 46.7246 186.66 46.7246C186.659 46.7246 186.658 46.7246 186.656 46.7246C186.655 46.7246 186.654 46.7246 186.653 46.7246C186.652 46.7246 186.65 46.7246 186.649 46.7246C186.648 46.7246 186.647 46.7246 186.646 46.7246C186.645 46.7246 186.643 46.7246 186.642 46.7246C186.641 46.7246 186.64 46.7246 186.639 46.7246C186.638 46.7246 186.636 46.7246 186.635 46.7246C186.634 46.7246 186.633 46.7246 186.632 46.7246C186.631 46.7246 186.629 46.7246 186.628 46.7246C186.627 46.7246 186.626 46.7246 186.625 46.7246C186.624 46.7246 186.622 46.7246 186.621 46.7246C186.62 46.7246 186.619 46.7246 186.618 46.7246C186.617 46.7246 186.615 46.7246 186.614 46.7246C186.613 46.7246 186.612 46.7246 186.611 46.7246C186.609 46.7246 186.608 46.7246 186.607 46.7246C186.606 46.7246 186.605 46.7246 186.604 46.7246C186.602 46.7246 186.601 46.7246 186.6 46.7246C186.599 46.7246 186.598 46.7246 186.597 46.7246C186.595 46.7246 186.594 46.7246 186.593 46.7246C186.592 46.7246 186.591 46.7246 186.59 46.7246C186.588 46.7246 186.587 46.7246 186.586 46.7246C186.585 46.7246 186.584 46.7246 186.583 46.7246C186.581 46.7246 186.58 46.7246 186.579 46.7246C186.578 46.7246 186.577 46.7246 186.575 46.7246C186.574 46.7246 186.573 46.7246 186.572 46.7246C186.571 46.7246 186.57 46.7246 186.568 46.7246C186.567 46.7246 186.566 46.7246 186.565 46.7246C186.564 46.7246 186.563 46.7246 186.561 46.7246C186.56 46.7246 186.559 46.7246 186.558 46.7246C186.557 46.7246 186.556 46.7246 186.554 46.7246C186.553 46.7246 186.552 46.7246 186.551 46.7246C186.55 46.7246 186.549 46.7246 186.547 46.7246C186.546 46.7246 186.545 46.7246 186.544 46.7246C186.543 46.7246 186.542 46.7246 186.54 46.7246C186.539 46.7246 186.538 46.7246 186.537 46.7246C186.536 46.7246 186.534 46.7246 186.533 46.7246C186.532 46.7246 186.531 46.7246 186.53 46.7246C186.529 46.7246 186.527 46.7246 186.526 46.7246C186.525 46.7246 186.524 46.7246 186.523 46.7246C186.522 46.7246 186.52 46.7246 186.519 46.7246C186.518 46.7246 186.517 46.7246 186.516 46.7246C186.515 46.7246 186.513 46.7246 186.512 46.7246C186.511 46.7246 186.51 46.7246 186.509 46.7246C186.508 46.7246 186.506 46.7246 186.505 46.7246C186.504 46.7246 186.503 46.7246 186.502 46.7246C186.5 46.7246 186.499 46.7246 186.498 46.7246C186.497 46.7246 186.496 46.7246 186.495 46.7246C186.493 46.7246 186.492 46.7246 186.491 46.7246C186.49 46.7246 186.489 46.7246 186.488 46.7246C186.486 46.7246 186.485 46.7246 186.484 46.7246C186.483 46.7246 186.482 46.7246 186.481 46.7246C186.479 46.7246 186.478 46.7246 186.477 46.7246C186.476 46.7246 186.475 46.7246 186.474 46.7246C186.472 46.7246 186.471 46.7246 186.47 46.7246C186.469 46.7246 186.468 46.7246 186.467 46.7246C186.465 46.7246 186.464 46.7246 186.463 46.7246C186.462 46.7246 186.461 46.7246 186.459 46.7246C186.458 46.7246 186.457 46.7246 186.456 46.7246C186.455 46.7246 186.454 46.7246 186.452 46.7246C186.451 46.7246 186.45 46.7246 186.449 46.7246C186.448 46.7246 186.447 46.7246 186.445 46.7246C186.444 46.7246 186.443 46.7246 186.442 46.7246C186.441 46.7246 186.44 46.7246 186.438 46.7246C186.437 46.7246 186.436 46.7246 186.435 46.7246C186.434 46.7246 186.433 46.7246 186.431 46.7246C186.43 46.7246 186.429 46.7246 186.428 46.7246C186.427 46.7246 186.425 46.7246 186.424 46.7246C186.423 46.7246 186.422 46.7246 186.421 46.7246C186.42 46.7246 186.418 46.7246 186.417 46.7246C186.416 46.7246 186.415 46.7246 186.414 46.7246C186.413 46.7246 186.411 46.7246 186.41 46.7246C186.409 46.7246 186.408 46.7246 186.407 46.7246C186.406 46.7246 186.404 46.7246 186.403 46.7246C186.402 46.7246 186.401 46.7246 186.4 46.7246C186.399 46.7246 186.397 46.7246 186.396 46.7246C186.395 46.7246 186.394 46.7246 186.393 46.7246C186.392 46.7246 186.39 46.7246 186.389 46.7246C186.388 46.7246 186.387 46.7246 186.386 46.7246C186.384 46.7246 186.383 46.7246 186.382 46.7246C186.381 46.7246 186.38 46.7246 186.379 46.7246C186.377 46.7246 186.376 46.7246 186.375 46.7246C186.374 46.7246 186.373 46.7246 186.372 46.7246C186.37 46.7246 186.369 46.7246 186.368 46.7246C186.367 46.7246 186.366 46.7246 186.365 46.7246C186.363 46.7246 186.362 46.7246 186.361 46.7246C186.36 46.7246 186.359 46.7246 186.358 46.7246C186.356 46.7246 186.355 46.7246 186.354 46.7246C186.353 46.7246 186.352 46.7246 186.35 46.7246C186.349 46.7246 186.348 46.7246 186.347 46.7246C186.346 46.7246 186.345 46.7246 186.343 46.7246C186.342 46.7246 186.341 46.7246 186.34 46.7246C186.339 46.7246 186.338 46.7246 186.336 46.7246C186.335 46.7246 186.334 46.7246 186.333 46.7246C186.332 46.7246 186.331 46.7246 186.329 46.7246C186.328 46.7246 186.327 46.7246 186.326 46.7246C186.325 46.7246 186.324 46.7246 186.322 46.7246C186.321 46.7246 186.32 46.7246 186.319 46.7246C186.318 46.7246 186.317 46.7246 186.315 46.7246C186.314 46.7246 186.313 46.7246 186.312 46.7246C186.311 46.7246 186.309 46.7246 186.308 46.7246C186.307 46.7246 186.306 46.7246 186.305 46.7246C186.304 46.7246 186.302 46.7246 186.301 46.7246C186.3 46.7246 186.299 46.7246 186.298 46.7246C186.297 46.7246 186.295 46.7246 186.294 46.7246C186.293 46.7246 186.292 46.7246 186.291 46.7246C186.29 46.7246 186.288 46.7246 186.287 46.7246C186.286 46.7246 186.285 46.7246 186.284 46.7246C186.283 46.7246 186.281 46.7246 186.28 46.7246C186.279 46.7246 186.278 46.7246 186.277 46.7246C186.275 46.7246 186.274 46.7246 186.273 46.7246C186.272 46.7246 186.271 46.7246 186.27 46.7246C186.268 46.7246 186.267 46.7246 186.266 46.7246C186.265 46.7246 186.264 46.7246 186.263 46.7246C186.261 46.7246 186.26 46.7246 186.259 46.7246C186.258 46.7246 186.257 46.7246 186.256 46.7246C186.254 46.7246 186.253 46.7246 186.252 46.7246C186.251 46.7246 186.25 46.7246 186.249 46.7246C186.247 46.7246 186.246 46.7246 186.245 46.7246C186.244 46.7246 186.243 46.7246 186.242 46.7246C186.24 46.7246 186.239 46.7246 186.238 46.7246C186.237 46.7246 186.236 46.7246 186.234 46.7246C186.233 46.7246 186.232 46.7246 186.231 46.7246C186.23 46.7246 186.229 46.7246 186.227 46.7246C186.226 46.7246 186.225 46.7246 186.224 46.7246C186.223 46.7246 186.222 46.7246 186.22 46.7246C186.219 46.7246 186.218 46.7246 186.217 46.7246C186.216 46.7246 186.215 46.7246 186.213 46.7246C186.212 46.7246 186.211 46.7246 186.21 46.7246C186.209 46.7246 186.208 46.7246 186.206 46.7246C186.205 46.7246 186.204 46.7246 186.203 46.7246C186.202 46.7246 186.2 46.7246 186.199 46.7246C186.198 46.7246 186.197 46.7246 186.196 46.7246C186.195 46.7246 186.193 46.7246 186.192 46.7246C186.191 46.7246 186.19 46.7246 186.189 46.7246C186.188 46.7246 186.186 46.7246 186.185 46.7246C186.184 46.7246 186.183 46.7246 186.182 46.7246C186.181 46.7246 186.179 46.7246 186.178 46.7246C186.177 46.7246 186.176 46.7246 186.175 46.7246C186.174 46.7246 186.172 46.7246 186.171 46.7246C186.17 46.7246 186.169 46.7246 186.168 46.7246C186.167 46.7246 186.165 46.7246 186.164 46.7246C186.163 46.7246 186.162 46.7246 186.161 46.7246C186.159 46.7246 186.158 46.7246 186.157 46.7246C186.156 46.7246 186.155 46.7246 186.154 46.7246C186.152 46.7246 186.151 46.7246 186.15 46.7246C186.149 46.7246 186.148 46.7246 186.147 46.7246C186.145 46.7246 186.144 46.7246 186.143 46.7246C186.142 46.7246 186.141 46.7246 186.14 46.7246C186.138 46.7246 186.137 46.7246 186.136 46.7246C186.135 46.7246 186.134 46.7246 186.133 46.7246C186.131 46.7246 186.13 46.7246 186.129 46.7246C186.128 46.7246 186.127 46.7246 186.125 46.7246C186.124 46.7246 186.123 46.7246 186.122 46.7246C186.121 46.7246 186.12 46.7246 186.118 46.7246C186.117 46.7246 186.116 46.7246 186.115 46.7246C186.114 46.7246 186.113 46.7246 186.111 46.7246C186.11 46.7246 186.109 46.7246 186.108 46.7246C186.107 46.7246 186.106 46.7246 186.104 46.7246C186.103 46.7246 186.102 46.7246 186.101 46.7246C186.1 46.7246 186.099 46.7246 186.097 46.7246C186.096 46.7246 186.095 46.7246 186.094 46.7246C186.093 46.7246 186.092 46.7246 186.09 46.7246C186.089 46.7246 186.088 46.7246 186.087 46.7246C186.086 46.7246 186.084 46.7246 186.083 46.7246C186.082 46.7246 186.081 46.7246 186.08 46.7246C186.079 46.7246 186.077 46.7246 186.076 46.7246C186.075 46.7246 186.074 46.7246 186.073 46.7246C186.072 46.7246 186.07 46.7246 186.069 46.7246C186.068 46.7246 186.067 46.7246 186.066 46.7246C186.065 46.7246 186.063 46.7246 186.062 46.7246C186.061 46.7246 186.06 46.7246 186.059 46.7246C186.058 46.7246 186.056 46.7246 186.055 46.7246C186.054 46.7246 186.053 46.7246 186.052 46.7246C186.05 46.7246 186.049 46.7246 186.048 46.7246C186.047 46.7246 186.046 46.7246 186.045 46.7246C186.043 46.7246 186.042 46.7246 186.041 46.7246C186.04 46.7246 186.039 46.7246 186.038 46.7246C186.036 46.7246 186.035 46.7246 186.034 46.7246C186.033 46.7246 186.032 46.7246 186.031 46.7246C186.029 46.7246 186.028 46.7246 186.027 46.7246C186.026 46.7246 186.025 46.7246 186.024 46.7246C186.022 46.7246 186.021 46.7246 186.02 46.7246C186.019 46.7246 186.018 46.7246 186.017 46.7246C186.015 46.7246 186.014 46.7246 186.013 46.7246C186.012 46.7246 186.011 46.7246 186.009 46.7246C186.008 46.7246 186.007 46.7246 186.006 46.7246C186.005 46.7246 186.004 46.7246 186.002 46.7246C186.001 46.7246 186 46.7246 185.999 46.7246C185.998 46.7246 185.997 46.7246 185.995 46.7246C185.994 46.7246 185.993 46.7246 185.992 46.7246C185.991 46.7246 185.99 46.7246 185.988 46.7246C185.987 46.7246 185.986 46.7246 185.985 46.7246C185.984 46.7246 185.983 46.7246 185.981 46.7246C185.98 46.7246 185.979 46.7246 185.978 46.7246C185.977 46.7246 185.975 46.7246 185.974 46.7246C185.973 46.7246 185.972 46.7246 185.971 46.7246C185.97 46.7246 185.968 46.7246 185.967 46.7246C185.966 46.7246 185.965 46.7246 185.964 46.7246C185.963 46.7246 185.961 46.7246 185.96 46.7246C185.959 46.7246 185.958 46.7246 185.957 46.7246C185.956 46.7246 185.954 46.7246 185.953 46.7246C185.952 46.7246 185.951 46.7246 185.95 46.7246C185.949 46.7246 185.947 46.7246 185.946 46.7246C185.945 46.7246 185.944 46.7246 185.943 46.7246C185.942 46.7246 185.94 46.7246 185.939 46.7246C185.938 46.7246 185.937 46.7246 185.936 46.7246C185.934 46.7246 185.933 46.7246 185.932 46.7246C185.931 46.7246 185.93 46.7246 185.929 46.7246C185.927 46.7246 185.926 46.7246 185.925 46.7246C185.924 46.7246 185.923 46.7246 185.922 46.7246C185.92 46.7246 185.919 46.7246 185.918 46.7246C185.917 46.7246 185.916 46.7246 185.915 46.7246C185.913 46.7246 185.912 46.7246 185.911 46.7246C185.91 46.7246 185.909 46.7246 185.908 46.7246C185.906 46.7246 185.905 46.7246 185.904 46.7246C185.903 46.7246 185.902 46.7246 185.9 46.7246C185.899 46.7246 185.898 46.7246 185.897 46.7246C185.896 46.7246 185.895 46.7246 185.893 46.7246C185.892 46.7246 185.891 46.7246 185.89 46.7246C185.889 46.7246 185.888 46.7246 185.886 46.7246C185.885 46.7246 185.884 46.7246 185.883 46.7246C185.882 46.7246 185.881 46.7246 185.879 46.7246C185.878 46.7246 185.877 46.7246 185.876 46.7246C185.875 46.7246 185.874 46.7246 185.872 46.7246C185.871 46.7246 185.87 46.7246 185.869 46.7246C185.868 46.7246 185.867 46.7246 185.865 46.7246C185.864 46.7246 185.863 46.7246 185.862 46.7246C185.861 46.7246 185.859 46.7246 185.858 46.7246C185.857 46.7246 185.856 46.7246 185.855 46.7246C185.854 46.7246 185.852 46.7246 185.851 46.7246C185.85 46.7246 185.849 46.7246 185.848 46.7246C185.847 46.7246 185.845 46.7246 185.844 46.7246C185.843 46.7246 185.842 46.7246 185.841 46.7246C185.84 46.7246 185.838 46.7246 185.837 46.7246C185.836 46.7246 185.835 46.7246 185.834 46.7246C185.833 46.7246 185.831 46.7246 185.83 46.7246C185.829 46.7246 185.828 46.7246 185.827 46.7246C185.825 46.7246 185.824 46.7246 185.823 46.7246C185.822 46.7246 185.821 46.7246 185.82 46.7246C185.818 46.7246 185.817 46.7246 185.816 46.7246C185.815 46.7246 185.814 46.7246 185.813 46.7246C185.811 46.7246 185.81 46.7246 185.809 46.7246C185.808 46.7246 185.807 46.7246 185.806 46.7246C185.804 46.7246 185.803 46.7246 185.802 46.7246C185.801 46.7246 185.8 46.7246 185.799 46.7246C185.797 46.7246 185.796 46.7246 185.795 46.7246C185.794 46.7246 185.793 46.7246 185.792 46.7246C185.79 46.7246 185.789 46.7246 185.788 46.7246C185.787 46.7246 185.786 46.7246 185.784 46.7246C185.783 46.7246 185.782 46.7246 185.781 46.7246C185.78 46.7246 185.779 46.7246 185.777 46.7246C185.776 46.7246 185.775 46.7246 185.774 46.7246C185.773 46.7246 185.772 46.7246 185.77 46.7246C185.769 46.7246 185.768 46.7246 185.767 46.7246C185.766 46.7246 185.765 46.7246 185.763 46.7246C185.762 46.7246 185.761 46.7246 185.76 46.7246C185.759 46.7246 185.758 46.7246 185.756 46.7246C185.755 46.7246 185.754 46.7246 185.753 46.7246C185.752 46.7246 185.75 46.7246 185.749 46.7246C185.748 46.7246 185.747 46.7246 185.746 46.7246C185.745 46.7246 185.743 46.7246 185.742 46.7246C185.741 46.7246 185.74 46.7246 185.739 46.7246C185.738 46.7246 185.736 46.7246 185.735 46.7246C185.734 46.7246 185.733 46.7246 185.732 46.7246C185.731 46.7246 185.729 46.7246 185.728 46.7246C185.727 46.7246 185.726 46.7246 185.725 46.7246C185.724 46.7246 185.722 46.7246 185.721 46.7246C185.72 46.7246 185.719 46.7246 185.718 46.7246C185.717 46.7246 185.715 46.7246 185.714 46.7246C185.713 46.7246 185.712 46.7246 185.711 46.7246C185.709 46.7246 185.708 46.7246 185.707 46.7246C185.706 46.7246 185.705 46.7246 185.704 46.7246C185.702 46.7246 185.701 46.7246 185.7 46.7246C185.699 46.7246 185.698 46.7246 185.697 46.7246C185.695 46.7246 185.694 46.7246 185.693 46.7246C185.692 46.7246 185.691 46.7246 185.69 46.7246C185.688 46.7246 185.687 46.7246 185.686 46.7246C185.685 46.7246 185.684 46.7246 185.683 46.7246C185.681 46.7246 185.68 46.7246 185.679 46.7246C185.678 46.7246 185.677 46.7246 185.675 46.7246C185.674 46.7246 185.673 46.7246 185.672 46.7246C185.671 46.7246 185.67 46.7246 185.668 46.7246C185.667 46.7246 185.666 46.7246 185.665 46.7246C185.664 46.7246 185.663 46.7246 185.661 46.7246C185.66 46.7246 185.659 46.7246 185.658 46.7246C185.657 46.7246 185.656 46.7246 185.654 46.7246C185.653 46.7246 185.652 46.7246 185.651 46.7246C185.65 46.7246 185.649 46.7246 185.647 46.7246C185.646 46.7246 185.645 46.7246 185.644 46.7246C185.643 46.7246 185.642 46.7246 185.64 46.7246C185.639 46.7246 185.638 46.7246 185.637 46.7246C185.636 46.7246 185.634 46.7246 185.633 46.7246C185.632 46.7246 185.631 46.7246 185.63 46.7246C185.629 46.7246 185.627 46.7246 185.626 46.7246C185.625 46.7246 185.624 46.7246 185.623 46.7246C185.622 46.7246 185.62 46.7246 185.619 46.7246C185.618 46.7246 185.617 46.7246 185.616 46.7246C185.615 46.7246 185.613 46.7246 185.612 46.7246C185.611 46.7246 185.61 46.7246 185.609 46.7246C185.608 46.7246 185.606 46.7246 185.605 46.7246C185.604 46.7246 185.603 46.7246 185.602 46.7246C185.6 46.7246 185.599 46.7246 185.598 46.7246C185.597 46.7246 185.596 46.7246 185.595 46.7246C185.593 46.7246 185.592 46.7246 185.591 46.7246C185.59 46.7246 185.589 46.7246 185.588 46.7246C185.586 46.7246 185.585 46.7246 185.584 46.7246C185.583 46.7246 185.582 46.7246 185.581 46.7246C185.579 46.7246 185.578 46.7246 185.577 46.7246C185.576 46.7246 185.575 46.7246 185.574 46.7246C185.572 46.7246 185.571 46.7246 185.57 46.7246C185.569 46.7246 185.568 46.7246 185.567 46.7246C185.565 46.7246 185.564 46.7246 185.563 46.7246C185.562 46.7246 185.561 46.7246 185.559 46.7246C185.558 46.7246 185.557 46.7246 185.556 46.7246C185.555 46.7246 185.554 46.7246 185.552 46.7246C185.551 46.7246 185.55 46.7246 185.549 46.7246C185.548 46.7246 185.547 46.7246 185.545 46.7246C185.544 46.7246 185.543 46.7246 185.542 46.7246C185.541 46.7246 185.54 46.7246 185.538 46.7246C185.537 46.7246 185.536 46.7246 185.535 46.7246C185.534 46.7246 185.533 46.7246 185.531 46.7246C185.53 46.7246 185.529 46.7246 185.528 46.7246C185.527 46.7246 185.525 46.7246 185.524 46.7246C185.523 46.7246 185.522 46.7246 185.521 46.7246C185.52 46.7246 185.518 46.7246 185.517 46.7246C185.516 46.7246 185.515 46.7246 185.514 46.7246C185.513 46.7246 185.511 46.7246 185.51 46.7246C185.509 46.7246 185.508 46.7246 185.507 46.7246C185.506 46.7246 185.504 46.7246 185.503 46.7246C185.502 46.7246 185.501 46.7246 185.5 46.7246C185.499 46.7246 185.497 46.7246 185.496 46.7246C185.495 46.7246 185.494 46.7246 185.493 46.7246C185.492 46.7246 185.49 46.7246 185.489 46.7246C185.488 46.7246 185.487 46.7246 185.486 46.7246C185.484 46.7246 185.483 46.7246 185.482 46.7246C185.481 46.7246 185.48 46.7246 185.479 46.7246C185.477 46.7246 185.476 46.7246 185.475 46.7246C185.474 46.7246 185.473 46.7246 185.472 46.7246C185.47 46.7246 185.469 46.7246 185.468 46.7246C185.467 46.7246 185.466 46.7246 185.465 46.7246C185.463 46.7246 185.462 46.7246 185.461 46.7246C185.46 46.7246 185.459 46.7246 185.458 46.7246C185.456 46.7246 185.455 46.7246 185.454 46.7246C185.453 46.7246 185.452 46.7246 185.45 46.7246C185.449 46.7246 185.448 46.7246 185.447 46.7246C185.446 46.7246 185.445 46.7246 185.443 46.7246C185.442 46.7246 185.441 46.7246 185.44 46.7246C185.439 46.7246 185.438 46.7246 185.436 46.7246C185.435 46.7246 185.434 46.7246 185.433 46.7246C185.432 46.7246 185.431 46.7246 185.429 46.7246C185.428 46.7246 185.427 46.7246 185.426 46.7246C185.425 46.7246 185.424 46.7246 185.422 46.7246C185.421 46.7246 185.42 46.7246 185.419 46.7246C185.418 46.7246 185.417 46.7246 185.415 46.7246C185.414 46.7246 185.413 46.7246 185.412 46.7246C185.411 46.7246 185.409 46.7246 185.408 46.7246C185.407 46.7246 185.406 46.7246 185.405 46.7246C185.404 46.7246 185.402 46.7246 185.401 46.7246C185.4 46.7246 185.399 46.7246 185.398 46.7246C185.397 46.7246 185.395 46.7246 185.394 46.7246C185.393 46.7246 185.392 46.7246 185.391 46.7246C185.39 46.7246 185.388 46.7246 185.387 46.7246C185.386 46.7246 185.385 46.7246 185.384 46.7246C185.383 46.7246 185.381 46.7246 185.38 46.7246C185.379 46.7246 185.378 46.7246 185.377 46.7246C185.375 46.7246 185.374 46.7246 185.373 46.7246C185.372 46.7246 185.371 46.7246 185.37 46.7246C185.368 46.7246 185.367 46.7246 185.366 46.7246C185.365 46.7246 185.364 46.7246 185.363 46.7246C185.361 46.7246 185.36 46.7246 185.359 46.7246C185.358 46.7246 185.357 46.7246 185.356 46.7246C185.354 46.7246 185.353 46.7246 185.352 46.7246C185.351 46.7246 185.35 46.7246 185.349 46.7246C185.347 46.7246 185.346 46.7246 185.345 46.7246C185.344 46.7246 185.343 46.7246 185.342 46.7246C185.34 46.7246 185.339 46.7246 185.338 46.7246C185.337 46.7246 185.336 46.7246 185.334 46.7246C185.333 46.7246 185.332 46.7246 185.331 46.7246C185.33 46.7246 185.329 46.7246 185.327 46.7246C185.326 46.7246 185.325 46.7246 185.324 46.7246C185.323 46.7246 185.322 46.7246 185.32 46.7246C185.319 46.7246 185.318 46.7246 185.317 46.7246C185.316 46.7246 185.315 46.7246 185.313 46.7246C185.312 46.7246 185.311 46.7246 185.31 46.7246C185.309 46.7246 185.308 46.7246 185.306 46.7246C185.305 46.7246 185.304 46.7246 185.303 46.7246C185.302 46.7246 185.3 46.7246 185.299 46.7246C185.298 46.7246 185.297 46.7246 185.296 46.7246C185.295 46.7246 185.293 46.7246 185.292 46.7246C185.291 46.7246 185.29 46.7246 185.289 46.7246C185.288 46.7246 185.286 46.7246 185.285 46.7246C185.284 46.7246 185.283 46.7246 185.282 46.7246C185.281 46.7246 185.279 46.7246 185.278 46.7246C185.277 46.7246 185.276 46.7246 185.275 46.7246C185.274 46.7246 185.272 46.7246 185.271 46.7246C185.27 46.7246 185.269 46.7246 185.268 46.7246C185.267 46.7246 185.265 46.7246 185.264 46.7246C185.263 46.7246 185.262 46.7246 185.261 46.7246V50.7246C185.262 50.7246 185.263 50.7246 185.264 50.7246C185.265 50.7246 185.267 50.7246 185.268 50.7246C185.269 50.7246 185.27 50.7246 185.271 50.7246C185.272 50.7246 185.274 50.7246 185.275 50.7246C185.276 50.7246 185.277 50.7246 185.278 50.7246C185.279 50.7246 185.281 50.7246 185.282 50.7246C185.283 50.7246 185.284 50.7246 185.285 50.7246C185.286 50.7246 185.288 50.7246 185.289 50.7246C185.29 50.7246 185.291 50.7246 185.292 50.7246C185.293 50.7246 185.295 50.7246 185.296 50.7246C185.297 50.7246 185.298 50.7246 185.299 50.7246C185.3 50.7246 185.302 50.7246 185.303 50.7246C185.304 50.7246 185.305 50.7246 185.306 50.7246C185.308 50.7246 185.309 50.7246 185.31 50.7246C185.311 50.7246 185.312 50.7246 185.313 50.7246C185.315 50.7246 185.316 50.7246 185.317 50.7246C185.318 50.7246 185.319 50.7246 185.32 50.7246C185.322 50.7246 185.323 50.7246 185.324 50.7246C185.325 50.7246 185.326 50.7246 185.327 50.7246C185.329 50.7246 185.33 50.7246 185.331 50.7246C185.332 50.7246 185.333 50.7246 185.334 50.7246C185.336 50.7246 185.337 50.7246 185.338 50.7246C185.339 50.7246 185.34 50.7246 185.342 50.7246C185.343 50.7246 185.344 50.7246 185.345 50.7246C185.346 50.7246 185.347 50.7246 185.349 50.7246C185.35 50.7246 185.351 50.7246 185.352 50.7246C185.353 50.7246 185.354 50.7246 185.356 50.7246C185.357 50.7246 185.358 50.7246 185.359 50.7246C185.36 50.7246 185.361 50.7246 185.363 50.7246C185.364 50.7246 185.365 50.7246 185.366 50.7246C185.367 50.7246 185.368 50.7246 185.37 50.7246C185.371 50.7246 185.372 50.7246 185.373 50.7246C185.374 50.7246 185.375 50.7246 185.377 50.7246C185.378 50.7246 185.379 50.7246 185.38 50.7246C185.381 50.7246 185.383 50.7246 185.384 50.7246C185.385 50.7246 185.386 50.7246 185.387 50.7246C185.388 50.7246 185.39 50.7246 185.391 50.7246C185.392 50.7246 185.393 50.7246 185.394 50.7246C185.395 50.7246 185.397 50.7246 185.398 50.7246C185.399 50.7246 185.4 50.7246 185.401 50.7246C185.402 50.7246 185.404 50.7246 185.405 50.7246C185.406 50.7246 185.407 50.7246 185.408 50.7246C185.409 50.7246 185.411 50.7246 185.412 50.7246C185.413 50.7246 185.414 50.7246 185.415 50.7246C185.417 50.7246 185.418 50.7246 185.419 50.7246C185.42 50.7246 185.421 50.7246 185.422 50.7246C185.424 50.7246 185.425 50.7246 185.426 50.7246C185.427 50.7246 185.428 50.7246 185.429 50.7246C185.431 50.7246 185.432 50.7246 185.433 50.7246C185.434 50.7246 185.435 50.7246 185.436 50.7246C185.438 50.7246 185.439 50.7246 185.44 50.7246C185.441 50.7246 185.442 50.7246 185.443 50.7246C185.445 50.7246 185.446 50.7246 185.447 50.7246C185.448 50.7246 185.449 50.7246 185.45 50.7246C185.452 50.7246 185.453 50.7246 185.454 50.7246C185.455 50.7246 185.456 50.7246 185.458 50.7246C185.459 50.7246 185.46 50.7246 185.461 50.7246C185.462 50.7246 185.463 50.7246 185.465 50.7246C185.466 50.7246 185.467 50.7246 185.468 50.7246C185.469 50.7246 185.47 50.7246 185.472 50.7246C185.473 50.7246 185.474 50.7246 185.475 50.7246C185.476 50.7246 185.477 50.7246 185.479 50.7246C185.48 50.7246 185.481 50.7246 185.482 50.7246C185.483 50.7246 185.484 50.7246 185.486 50.7246C185.487 50.7246 185.488 50.7246 185.489 50.7246C185.49 50.7246 185.492 50.7246 185.493 50.7246C185.494 50.7246 185.495 50.7246 185.496 50.7246C185.497 50.7246 185.499 50.7246 185.5 50.7246C185.501 50.7246 185.502 50.7246 185.503 50.7246C185.504 50.7246 185.506 50.7246 185.507 50.7246C185.508 50.7246 185.509 50.7246 185.51 50.7246C185.511 50.7246 185.513 50.7246 185.514 50.7246C185.515 50.7246 185.516 50.7246 185.517 50.7246C185.518 50.7246 185.52 50.7246 185.521 50.7246C185.522 50.7246 185.523 50.7246 185.524 50.7246C185.525 50.7246 185.527 50.7246 185.528 50.7246C185.529 50.7246 185.53 50.7246 185.531 50.7246C185.533 50.7246 185.534 50.7246 185.535 50.7246C185.536 50.7246 185.537 50.7246 185.538 50.7246C185.54 50.7246 185.541 50.7246 185.542 50.7246C185.543 50.7246 185.544 50.7246 185.545 50.7246C185.547 50.7246 185.548 50.7246 185.549 50.7246C185.55 50.7246 185.551 50.7246 185.552 50.7246C185.554 50.7246 185.555 50.7246 185.556 50.7246C185.557 50.7246 185.558 50.7246 185.559 50.7246C185.561 50.7246 185.562 50.7246 185.563 50.7246C185.564 50.7246 185.565 50.7246 185.567 50.7246C185.568 50.7246 185.569 50.7246 185.57 50.7246C185.571 50.7246 185.572 50.7246 185.574 50.7246C185.575 50.7246 185.576 50.7246 185.577 50.7246C185.578 50.7246 185.579 50.7246 185.581 50.7246C185.582 50.7246 185.583 50.7246 185.584 50.7246C185.585 50.7246 185.586 50.7246 185.588 50.7246C185.589 50.7246 185.59 50.7246 185.591 50.7246C185.592 50.7246 185.593 50.7246 185.595 50.7246C185.596 50.7246 185.597 50.7246 185.598 50.7246C185.599 50.7246 185.6 50.7246 185.602 50.7246C185.603 50.7246 185.604 50.7246 185.605 50.7246C185.606 50.7246 185.608 50.7246 185.609 50.7246C185.61 50.7246 185.611 50.7246 185.612 50.7246C185.613 50.7246 185.615 50.7246 185.616 50.7246C185.617 50.7246 185.618 50.7246 185.619 50.7246C185.62 50.7246 185.622 50.7246 185.623 50.7246C185.624 50.7246 185.625 50.7246 185.626 50.7246C185.627 50.7246 185.629 50.7246 185.63 50.7246C185.631 50.7246 185.632 50.7246 185.633 50.7246C185.634 50.7246 185.636 50.7246 185.637 50.7246C185.638 50.7246 185.639 50.7246 185.64 50.7246C185.642 50.7246 185.643 50.7246 185.644 50.7246C185.645 50.7246 185.646 50.7246 185.647 50.7246C185.649 50.7246 185.65 50.7246 185.651 50.7246C185.652 50.7246 185.653 50.7246 185.654 50.7246C185.656 50.7246 185.657 50.7246 185.658 50.7246C185.659 50.7246 185.66 50.7246 185.661 50.7246C185.663 50.7246 185.664 50.7246 185.665 50.7246C185.666 50.7246 185.667 50.7246 185.668 50.7246C185.67 50.7246 185.671 50.7246 185.672 50.7246C185.673 50.7246 185.674 50.7246 185.675 50.7246C185.677 50.7246 185.678 50.7246 185.679 50.7246C185.68 50.7246 185.681 50.7246 185.683 50.7246C185.684 50.7246 185.685 50.7246 185.686 50.7246C185.687 50.7246 185.688 50.7246 185.69 50.7246C185.691 50.7246 185.692 50.7246 185.693 50.7246C185.694 50.7246 185.695 50.7246 185.697 50.7246C185.698 50.7246 185.699 50.7246 185.7 50.7246C185.701 50.7246 185.702 50.7246 185.704 50.7246C185.705 50.7246 185.706 50.7246 185.707 50.7246C185.708 50.7246 185.709 50.7246 185.711 50.7246C185.712 50.7246 185.713 50.7246 185.714 50.7246C185.715 50.7246 185.717 50.7246 185.718 50.7246C185.719 50.7246 185.72 50.7246 185.721 50.7246C185.722 50.7246 185.724 50.7246 185.725 50.7246C185.726 50.7246 185.727 50.7246 185.728 50.7246C185.729 50.7246 185.731 50.7246 185.732 50.7246C185.733 50.7246 185.734 50.7246 185.735 50.7246C185.736 50.7246 185.738 50.7246 185.739 50.7246C185.74 50.7246 185.741 50.7246 185.742 50.7246C185.743 50.7246 185.745 50.7246 185.746 50.7246C185.747 50.7246 185.748 50.7246 185.749 50.7246C185.75 50.7246 185.752 50.7246 185.753 50.7246C185.754 50.7246 185.755 50.7246 185.756 50.7246C185.758 50.7246 185.759 50.7246 185.76 50.7246C185.761 50.7246 185.762 50.7246 185.763 50.7246C185.765 50.7246 185.766 50.7246 185.767 50.7246C185.768 50.7246 185.769 50.7246 185.77 50.7246C185.772 50.7246 185.773 50.7246 185.774 50.7246C185.775 50.7246 185.776 50.7246 185.777 50.7246C185.779 50.7246 185.78 50.7246 185.781 50.7246C185.782 50.7246 185.783 50.7246 185.784 50.7246C185.786 50.7246 185.787 50.7246 185.788 50.7246C185.789 50.7246 185.79 50.7246 185.792 50.7246C185.793 50.7246 185.794 50.7246 185.795 50.7246C185.796 50.7246 185.797 50.7246 185.799 50.7246C185.8 50.7246 185.801 50.7246 185.802 50.7246C185.803 50.7246 185.804 50.7246 185.806 50.7246C185.807 50.7246 185.808 50.7246 185.809 50.7246C185.81 50.7246 185.811 50.7246 185.813 50.7246C185.814 50.7246 185.815 50.7246 185.816 50.7246C185.817 50.7246 185.818 50.7246 185.82 50.7246C185.821 50.7246 185.822 50.7246 185.823 50.7246C185.824 50.7246 185.825 50.7246 185.827 50.7246C185.828 50.7246 185.829 50.7246 185.83 50.7246C185.831 50.7246 185.833 50.7246 185.834 50.7246C185.835 50.7246 185.836 50.7246 185.837 50.7246C185.838 50.7246 185.84 50.7246 185.841 50.7246C185.842 50.7246 185.843 50.7246 185.844 50.7246C185.845 50.7246 185.847 50.7246 185.848 50.7246C185.849 50.7246 185.85 50.7246 185.851 50.7246C185.852 50.7246 185.854 50.7246 185.855 50.7246C185.856 50.7246 185.857 50.7246 185.858 50.7246C185.859 50.7246 185.861 50.7246 185.862 50.7246C185.863 50.7246 185.864 50.7246 185.865 50.7246C185.867 50.7246 185.868 50.7246 185.869 50.7246C185.87 50.7246 185.871 50.7246 185.872 50.7246C185.874 50.7246 185.875 50.7246 185.876 50.7246C185.877 50.7246 185.878 50.7246 185.879 50.7246C185.881 50.7246 185.882 50.7246 185.883 50.7246C185.884 50.7246 185.885 50.7246 185.886 50.7246C185.888 50.7246 185.889 50.7246 185.89 50.7246C185.891 50.7246 185.892 50.7246 185.893 50.7246C185.895 50.7246 185.896 50.7246 185.897 50.7246C185.898 50.7246 185.899 50.7246 185.9 50.7246C185.902 50.7246 185.903 50.7246 185.904 50.7246C185.905 50.7246 185.906 50.7246 185.908 50.7246C185.909 50.7246 185.91 50.7246 185.911 50.7246C185.912 50.7246 185.913 50.7246 185.915 50.7246C185.916 50.7246 185.917 50.7246 185.918 50.7246C185.919 50.7246 185.92 50.7246 185.922 50.7246C185.923 50.7246 185.924 50.7246 185.925 50.7246C185.926 50.7246 185.927 50.7246 185.929 50.7246C185.93 50.7246 185.931 50.7246 185.932 50.7246C185.933 50.7246 185.934 50.7246 185.936 50.7246C185.937 50.7246 185.938 50.7246 185.939 50.7246C185.94 50.7246 185.942 50.7246 185.943 50.7246C185.944 50.7246 185.945 50.7246 185.946 50.7246C185.947 50.7246 185.949 50.7246 185.95 50.7246C185.951 50.7246 185.952 50.7246 185.953 50.7246C185.954 50.7246 185.956 50.7246 185.957 50.7246C185.958 50.7246 185.959 50.7246 185.96 50.7246C185.961 50.7246 185.963 50.7246 185.964 50.7246C185.965 50.7246 185.966 50.7246 185.967 50.7246C185.968 50.7246 185.97 50.7246 185.971 50.7246C185.972 50.7246 185.973 50.7246 185.974 50.7246C185.975 50.7246 185.977 50.7246 185.978 50.7246C185.979 50.7246 185.98 50.7246 185.981 50.7246C185.983 50.7246 185.984 50.7246 185.985 50.7246C185.986 50.7246 185.987 50.7246 185.988 50.7246C185.99 50.7246 185.991 50.7246 185.992 50.7246C185.993 50.7246 185.994 50.7246 185.995 50.7246C185.997 50.7246 185.998 50.7246 185.999 50.7246C186 50.7246 186.001 50.7246 186.002 50.7246C186.004 50.7246 186.005 50.7246 186.006 50.7246C186.007 50.7246 186.008 50.7246 186.009 50.7246C186.011 50.7246 186.012 50.7246 186.013 50.7246C186.014 50.7246 186.015 50.7246 186.017 50.7246C186.018 50.7246 186.019 50.7246 186.02 50.7246C186.021 50.7246 186.022 50.7246 186.024 50.7246C186.025 50.7246 186.026 50.7246 186.027 50.7246C186.028 50.7246 186.029 50.7246 186.031 50.7246C186.032 50.7246 186.033 50.7246 186.034 50.7246C186.035 50.7246 186.036 50.7246 186.038 50.7246C186.039 50.7246 186.04 50.7246 186.041 50.7246C186.042 50.7246 186.043 50.7246 186.045 50.7246C186.046 50.7246 186.047 50.7246 186.048 50.7246C186.049 50.7246 186.05 50.7246 186.052 50.7246C186.053 50.7246 186.054 50.7246 186.055 50.7246C186.056 50.7246 186.058 50.7246 186.059 50.7246C186.06 50.7246 186.061 50.7246 186.062 50.7246C186.063 50.7246 186.065 50.7246 186.066 50.7246C186.067 50.7246 186.068 50.7246 186.069 50.7246C186.07 50.7246 186.072 50.7246 186.073 50.7246C186.074 50.7246 186.075 50.7246 186.076 50.7246C186.077 50.7246 186.079 50.7246 186.08 50.7246C186.081 50.7246 186.082 50.7246 186.083 50.7246C186.084 50.7246 186.086 50.7246 186.087 50.7246C186.088 50.7246 186.089 50.7246 186.09 50.7246C186.092 50.7246 186.093 50.7246 186.094 50.7246C186.095 50.7246 186.096 50.7246 186.097 50.7246C186.099 50.7246 186.1 50.7246 186.101 50.7246C186.102 50.7246 186.103 50.7246 186.104 50.7246C186.106 50.7246 186.107 50.7246 186.108 50.7246C186.109 50.7246 186.11 50.7246 186.111 50.7246C186.113 50.7246 186.114 50.7246 186.115 50.7246C186.116 50.7246 186.117 50.7246 186.118 50.7246C186.12 50.7246 186.121 50.7246 186.122 50.7246C186.123 50.7246 186.124 50.7246 186.125 50.7246C186.127 50.7246 186.128 50.7246 186.129 50.7246C186.13 50.7246 186.131 50.7246 186.133 50.7246C186.134 50.7246 186.135 50.7246 186.136 50.7246C186.137 50.7246 186.138 50.7246 186.14 50.7246C186.141 50.7246 186.142 50.7246 186.143 50.7246C186.144 50.7246 186.145 50.7246 186.147 50.7246C186.148 50.7246 186.149 50.7246 186.15 50.7246C186.151 50.7246 186.152 50.7246 186.154 50.7246C186.155 50.7246 186.156 50.7246 186.157 50.7246C186.158 50.7246 186.159 50.7246 186.161 50.7246C186.162 50.7246 186.163 50.7246 186.164 50.7246C186.165 50.7246 186.167 50.7246 186.168 50.7246C186.169 50.7246 186.17 50.7246 186.171 50.7246C186.172 50.7246 186.174 50.7246 186.175 50.7246C186.176 50.7246 186.177 50.7246 186.178 50.7246C186.179 50.7246 186.181 50.7246 186.182 50.7246C186.183 50.7246 186.184 50.7246 186.185 50.7246C186.186 50.7246 186.188 50.7246 186.189 50.7246C186.19 50.7246 186.191 50.7246 186.192 50.7246C186.193 50.7246 186.195 50.7246 186.196 50.7246C186.197 50.7246 186.198 50.7246 186.199 50.7246C186.2 50.7246 186.202 50.7246 186.203 50.7246C186.204 50.7246 186.205 50.7246 186.206 50.7246C186.208 50.7246 186.209 50.7246 186.21 50.7246C186.211 50.7246 186.212 50.7246 186.213 50.7246C186.215 50.7246 186.216 50.7246 186.217 50.7246C186.218 50.7246 186.219 50.7246 186.22 50.7246C186.222 50.7246 186.223 50.7246 186.224 50.7246C186.225 50.7246 186.226 50.7246 186.227 50.7246C186.229 50.7246 186.23 50.7246 186.231 50.7246C186.232 50.7246 186.233 50.7246 186.234 50.7246C186.236 50.7246 186.237 50.7246 186.238 50.7246C186.239 50.7246 186.24 50.7246 186.242 50.7246C186.243 50.7246 186.244 50.7246 186.245 50.7246C186.246 50.7246 186.247 50.7246 186.249 50.7246C186.25 50.7246 186.251 50.7246 186.252 50.7246C186.253 50.7246 186.254 50.7246 186.256 50.7246C186.257 50.7246 186.258 50.7246 186.259 50.7246C186.26 50.7246 186.261 50.7246 186.263 50.7246C186.264 50.7246 186.265 50.7246 186.266 50.7246C186.267 50.7246 186.268 50.7246 186.27 50.7246C186.271 50.7246 186.272 50.7246 186.273 50.7246C186.274 50.7246 186.275 50.7246 186.277 50.7246C186.278 50.7246 186.279 50.7246 186.28 50.7246C186.281 50.7246 186.283 50.7246 186.284 50.7246C186.285 50.7246 186.286 50.7246 186.287 50.7246C186.288 50.7246 186.29 50.7246 186.291 50.7246C186.292 50.7246 186.293 50.7246 186.294 50.7246C186.295 50.7246 186.297 50.7246 186.298 50.7246C186.299 50.7246 186.3 50.7246 186.301 50.7246C186.302 50.7246 186.304 50.7246 186.305 50.7246C186.306 50.7246 186.307 50.7246 186.308 50.7246C186.309 50.7246 186.311 50.7246 186.312 50.7246C186.313 50.7246 186.314 50.7246 186.315 50.7246C186.317 50.7246 186.318 50.7246 186.319 50.7246C186.32 50.7246 186.321 50.7246 186.322 50.7246C186.324 50.7246 186.325 50.7246 186.326 50.7246C186.327 50.7246 186.328 50.7246 186.329 50.7246C186.331 50.7246 186.332 50.7246 186.333 50.7246C186.334 50.7246 186.335 50.7246 186.336 50.7246C186.338 50.7246 186.339 50.7246 186.34 50.7246C186.341 50.7246 186.342 50.7246 186.343 50.7246C186.345 50.7246 186.346 50.7246 186.347 50.7246C186.348 50.7246 186.349 50.7246 186.35 50.7246C186.352 50.7246 186.353 50.7246 186.354 50.7246C186.355 50.7246 186.356 50.7246 186.358 50.7246C186.359 50.7246 186.36 50.7246 186.361 50.7246C186.362 50.7246 186.363 50.7246 186.365 50.7246C186.366 50.7246 186.367 50.7246 186.368 50.7246C186.369 50.7246 186.37 50.7246 186.372 50.7246C186.373 50.7246 186.374 50.7246 186.375 50.7246C186.376 50.7246 186.377 50.7246 186.379 50.7246C186.38 50.7246 186.381 50.7246 186.382 50.7246C186.383 50.7246 186.384 50.7246 186.386 50.7246C186.387 50.7246 186.388 50.7246 186.389 50.7246C186.39 50.7246 186.392 50.7246 186.393 50.7246C186.394 50.7246 186.395 50.7246 186.396 50.7246C186.397 50.7246 186.399 50.7246 186.4 50.7246C186.401 50.7246 186.402 50.7246 186.403 50.7246C186.404 50.7246 186.406 50.7246 186.407 50.7246C186.408 50.7246 186.409 50.7246 186.41 50.7246C186.411 50.7246 186.413 50.7246 186.414 50.7246C186.415 50.7246 186.416 50.7246 186.417 50.7246C186.418 50.7246 186.42 50.7246 186.421 50.7246C186.422 50.7246 186.423 50.7246 186.424 50.7246C186.425 50.7246 186.427 50.7246 186.428 50.7246C186.429 50.7246 186.43 50.7246 186.431 50.7246C186.433 50.7246 186.434 50.7246 186.435 50.7246C186.436 50.7246 186.437 50.7246 186.438 50.7246C186.44 50.7246 186.441 50.7246 186.442 50.7246C186.443 50.7246 186.444 50.7246 186.445 50.7246C186.447 50.7246 186.448 50.7246 186.449 50.7246C186.45 50.7246 186.451 50.7246 186.452 50.7246C186.454 50.7246 186.455 50.7246 186.456 50.7246C186.457 50.7246 186.458 50.7246 186.459 50.7246C186.461 50.7246 186.462 50.7246 186.463 50.7246C186.464 50.7246 186.465 50.7246 186.467 50.7246C186.468 50.7246 186.469 50.7246 186.47 50.7246C186.471 50.7246 186.472 50.7246 186.474 50.7246C186.475 50.7246 186.476 50.7246 186.477 50.7246C186.478 50.7246 186.479 50.7246 186.481 50.7246C186.482 50.7246 186.483 50.7246 186.484 50.7246C186.485 50.7246 186.486 50.7246 186.488 50.7246C186.489 50.7246 186.49 50.7246 186.491 50.7246C186.492 50.7246 186.493 50.7246 186.495 50.7246C186.496 50.7246 186.497 50.7246 186.498 50.7246C186.499 50.7246 186.5 50.7246 186.502 50.7246C186.503 50.7246 186.504 50.7246 186.505 50.7246C186.506 50.7246 186.508 50.7246 186.509 50.7246C186.51 50.7246 186.511 50.7246 186.512 50.7246C186.513 50.7246 186.515 50.7246 186.516 50.7246C186.517 50.7246 186.518 50.7246 186.519 50.7246C186.52 50.7246 186.522 50.7246 186.523 50.7246C186.524 50.7246 186.525 50.7246 186.526 50.7246C186.527 50.7246 186.529 50.7246 186.53 50.7246C186.531 50.7246 186.532 50.7246 186.533 50.7246C186.534 50.7246 186.536 50.7246 186.537 50.7246C186.538 50.7246 186.539 50.7246 186.54 50.7246C186.542 50.7246 186.543 50.7246 186.544 50.7246C186.545 50.7246 186.546 50.7246 186.547 50.7246C186.549 50.7246 186.55 50.7246 186.551 50.7246C186.552 50.7246 186.553 50.7246 186.554 50.7246C186.556 50.7246 186.557 50.7246 186.558 50.7246C186.559 50.7246 186.56 50.7246 186.561 50.7246C186.563 50.7246 186.564 50.7246 186.565 50.7246C186.566 50.7246 186.567 50.7246 186.568 50.7246C186.57 50.7246 186.571 50.7246 186.572 50.7246C186.573 50.7246 186.574 50.7246 186.575 50.7246C186.577 50.7246 186.578 50.7246 186.579 50.7246C186.58 50.7246 186.581 50.7246 186.583 50.7246C186.584 50.7246 186.585 50.7246 186.586 50.7246C186.587 50.7246 186.588 50.7246 186.59 50.7246C186.591 50.7246 186.592 50.7246 186.593 50.7246C186.594 50.7246 186.595 50.7246 186.597 50.7246C186.598 50.7246 186.599 50.7246 186.6 50.7246C186.601 50.7246 186.602 50.7246 186.604 50.7246C186.605 50.7246 186.606 50.7246 186.607 50.7246C186.608 50.7246 186.609 50.7246 186.611 50.7246C186.612 50.7246 186.613 50.7246 186.614 50.7246C186.615 50.7246 186.617 50.7246 186.618 50.7246C186.619 50.7246 186.62 50.7246 186.621 50.7246C186.622 50.7246 186.624 50.7246 186.625 50.7246C186.626 50.7246 186.627 50.7246 186.628 50.7246C186.629 50.7246 186.631 50.7246 186.632 50.7246C186.633 50.7246 186.634 50.7246 186.635 50.7246C186.636 50.7246 186.638 50.7246 186.639 50.7246C186.64 50.7246 186.641 50.7246 186.642 50.7246C186.643 50.7246 186.645 50.7246 186.646 50.7246C186.647 50.7246 186.648 50.7246 186.649 50.7246C186.65 50.7246 186.652 50.7246 186.653 50.7246C186.654 50.7246 186.655 50.7246 186.656 50.7246C186.658 50.7246 186.659 50.7246 186.66 50.7246C186.661 50.7246 186.662 50.7246 186.663 50.7246C186.665 50.7246 186.666 50.7246 186.667 50.7246C186.668 50.7246 186.669 50.7246 186.67 50.7246C186.672 50.7246 186.673 50.7246 186.674 50.7246C186.675 50.7246 186.676 50.7246 186.677 50.7246C186.679 50.7246 186.68 50.7246 186.681 50.7246C186.682 50.7246 186.683 50.7246 186.684 50.7246C186.686 50.7246 186.687 50.7246 186.688 50.7246C186.689 50.7246 186.69 50.7246 186.692 50.7246C186.693 50.7246 186.694 50.7246 186.695 50.7246C186.696 50.7246 186.697 50.7246 186.699 50.7246C186.7 50.7246 186.701 50.7246 186.702 50.7246C186.703 50.7246 186.704 50.7246 186.706 50.7246C186.707 50.7246 186.708 50.7246 186.709 50.7246C186.71 50.7246 186.711 50.7246 186.713 50.7246C186.714 50.7246 186.715 50.7246 186.716 50.7246C186.717 50.7246 186.718 50.7246 186.72 50.7246C186.721 50.7246 186.722 50.7246 186.723 50.7246C186.724 50.7246 186.725 50.7246 186.727 50.7246C186.728 50.7246 186.729 50.7246 186.73 50.7246C186.731 50.7246 186.733 50.7246 186.734 50.7246C186.735 50.7246 186.736 50.7246 186.737 50.7246C186.738 50.7246 186.74 50.7246 186.741 50.7246C186.742 50.7246 186.743 50.7246 186.744 50.7246C186.745 50.7246 186.747 50.7246 186.748 50.7246C186.749 50.7246 186.75 50.7246 186.751 50.7246C186.752 50.7246 186.754 50.7246 186.755 50.7246C186.756 50.7246 186.757 50.7246 186.758 50.7246C186.759 50.7246 186.761 50.7246 186.762 50.7246C186.763 50.7246 186.764 50.7246 186.765 50.7246C186.767 50.7246 186.768 50.7246 186.769 50.7246C186.77 50.7246 186.771 50.7246 186.772 50.7246C186.774 50.7246 186.775 50.7246 186.776 50.7246C186.777 50.7246 186.778 50.7246 186.779 50.7246C186.781 50.7246 186.782 50.7246 186.783 50.7246C186.784 50.7246 186.785 50.7246 186.786 50.7246C186.788 50.7246 186.789 50.7246 186.79 50.7246C186.791 50.7246 186.792 50.7246 186.793 50.7246C186.795 50.7246 186.796 50.7246 186.797 50.7246C186.798 50.7246 186.799 50.7246 186.8 50.7246C186.802 50.7246 186.803 50.7246 186.804 50.7246C186.805 50.7246 186.806 50.7246 186.808 50.7246C186.809 50.7246 186.81 50.7246 186.811 50.7246C186.812 50.7246 186.813 50.7246 186.815 50.7246C186.816 50.7246 186.817 50.7246 186.818 50.7246C186.819 50.7246 186.82 50.7246 186.822 50.7246C186.823 50.7246 186.824 50.7246 186.825 50.7246C186.826 50.7246 186.827 50.7246 186.829 50.7246C186.83 50.7246 186.831 50.7246 186.832 50.7246C186.833 50.7246 186.834 50.7246 186.836 50.7246C186.837 50.7246 186.838 50.7246 186.839 50.7246C186.84 50.7246 186.842 50.7246 186.843 50.7246C186.844 50.7246 186.845 50.7246 186.846 50.7246C186.847 50.7246 186.849 50.7246 186.85 50.7246C186.851 50.7246 186.852 50.7246 186.853 50.7246C186.854 50.7246 186.856 50.7246 186.857 50.7246C186.858 50.7246 186.859 50.7246 186.86 50.7246C186.861 50.7246 186.863 50.7246 186.864 50.7246C186.865 50.7246 186.866 50.7246 186.867 50.7246C186.868 50.7246 186.87 50.7246 186.871 50.7246C186.872 50.7246 186.873 50.7246 186.874 50.7246C186.875 50.7246 186.877 50.7246 186.878 50.7246C186.879 50.7246 186.88 50.7246 186.881 50.7246C186.883 50.7246 186.884 50.7246 186.885 50.7246C186.886 50.7246 186.887 50.7246 186.888 50.7246C186.89 50.7246 186.891 50.7246 186.892 50.7246C186.893 50.7246 186.894 50.7246 186.895 50.7246C186.897 50.7246 186.898 50.7246 186.899 50.7246C186.9 50.7246 186.901 50.7246 186.902 50.7246C186.904 50.7246 186.905 50.7246 186.906 50.7246C186.907 50.7246 186.908 50.7246 186.909 50.7246C186.911 50.7246 186.912 50.7246 186.913 50.7246C186.914 50.7246 186.915 50.7246 186.917 50.7246C186.918 50.7246 186.919 50.7246 186.92 50.7246C186.921 50.7246 186.922 50.7246 186.924 50.7246C186.925 50.7246 186.926 50.7246 186.927 50.7246C186.928 50.7246 186.929 50.7246 186.931 50.7246C186.932 50.7246 186.933 50.7246 186.934 50.7246C186.935 50.7246 186.936 50.7246 186.938 50.7246C186.939 50.7246 186.94 50.7246 186.941 50.7246C186.942 50.7246 186.943 50.7246 186.945 50.7246C186.946 50.7246 186.947 50.7246 186.948 50.7246C186.949 50.7246 186.95 50.7246 186.952 50.7246C186.953 50.7246 186.954 50.7246 186.955 50.7246C186.956 50.7246 186.958 50.7246 186.959 50.7246C186.96 50.7246 186.961 50.7246 186.962 50.7246C186.963 50.7246 186.965 50.7246 186.966 50.7246C186.967 50.7246 186.968 50.7246 186.969 50.7246C186.97 50.7246 186.972 50.7246 186.973 50.7246C186.974 50.7246 186.975 50.7246 186.976 50.7246C186.977 50.7246 186.979 50.7246 186.98 50.7246C186.981 50.7246 186.982 50.7246 186.983 50.7246C186.984 50.7246 186.986 50.7246 186.987 50.7246C186.988 50.7246 186.989 50.7246 186.99 50.7246C186.992 50.7246 186.993 50.7246 186.994 50.7246C186.995 50.7246 186.996 50.7246 186.997 50.7246C186.999 50.7246 187 50.7246 187.001 50.7246C187.002 50.7246 187.003 50.7246 187.004 50.7246C187.006 50.7246 187.007 50.7246 187.008 50.7246C187.009 50.7246 187.01 50.7246 187.011 50.7246C187.013 50.7246 187.014 50.7246 187.015 50.7246C187.016 50.7246 187.017 50.7246 187.018 50.7246C187.02 50.7246 187.021 50.7246 187.022 50.7246C187.023 50.7246 187.024 50.7246 187.025 50.7246C187.027 50.7246 187.028 50.7246 187.029 50.7246C187.03 50.7246 187.031 50.7246 187.033 50.7246C187.034 50.7246 187.035 50.7246 187.036 50.7246C187.037 50.7246 187.038 50.7246 187.04 50.7246C187.041 50.7246 187.042 50.7246 187.043 50.7246C187.044 50.7246 187.045 50.7246 187.047 50.7246C187.048 50.7246 187.049 50.7246 187.05 50.7246C187.051 50.7246 187.052 50.7246 187.054 50.7246C187.055 50.7246 187.056 50.7246 187.057 50.7246C187.058 50.7246 187.059 50.7246 187.061 50.7246V46.7246ZM185.261 46.7246H171.941V50.7246H185.261V46.7246ZM169.941 48.7246V69.5146H173.941V48.7246H169.941ZM171.941 67.5146H161.231V71.5146H171.941V67.5146ZM171.941 41.2746H187.781V37.2746H171.941V41.2746ZM187.781 41.2746C190.332 41.2746 192.724 40.7693 194.93 39.7356L193.232 36.1137C191.597 36.88 189.79 37.2746 187.781 37.2746V41.2746ZM194.93 39.7356C197.187 38.6773 198.988 37.1006 200.28 35.0194L196.881 32.9099C196.013 34.3087 194.814 35.372 193.232 36.1137L194.93 39.7356ZM200.27 35.0348C201.638 32.8754 202.291 30.3943 202.291 27.6646H198.291C198.291 29.735 197.803 31.4539 196.891 32.8945L200.27 35.0348ZM202.291 27.6646C202.291 24.8876 201.643 22.39 200.254 20.2686L196.908 22.4607C197.798 23.8193 198.291 25.5217 198.291 27.6646H202.291ZM200.254 20.2686C198.916 18.2277 197.14 16.6632 194.952 15.6043L193.21 19.205C194.741 19.946 195.965 21.0216 196.908 22.4607L200.254 20.2686ZM194.998 15.6274C192.83 14.5082 190.441 13.9646 187.871 13.9646V17.9646C189.861 17.9646 191.612 18.381 193.163 19.1819L194.998 15.6274ZM187.871 13.9646H171.941V17.9646H187.871V13.9646ZM169.941 15.9646V39.2746H173.941V15.9646H169.941ZM222.403 69.5146H220.403V71.5146H222.403V69.5146ZM222.403 6.51464V4.51464H220.403V6.51464H222.403ZM261.283 9.21465L260.325 10.9704L260.344 10.9807L260.363 10.9906L261.283 9.21465ZM269.293 16.5946L267.595 17.6518L267.595 17.6518L269.293 16.5946ZM269.113 38.8246L267.434 37.7368L267.429 37.7447L269.113 38.8246ZM260.923 46.2046L260.016 44.4221L258.208 45.3419L259.153 47.1367L260.923 46.2046ZM267.133 57.9946L265.363 58.9267L265.37 58.9396L265.377 58.9523L267.133 57.9946ZM268.393 59.5246L267.193 61.1246L267.26 61.1756L267.333 61.2206L268.393 59.5246ZM275.593 59.9746H277.593V57.9746H275.593V59.9746ZM275.593 69.5146V71.5146H277.593V69.5146H275.593ZM262.093 67.7146L260.995 69.3867L261.014 69.3989L261.033 69.4106L262.093 67.7146ZM257.503 62.7646L255.73 63.6906L255.743 63.7156L255.757 63.7403L257.503 62.7646ZM250.123 48.6346L251.895 47.7087L251.269 46.51L249.924 46.6446L250.123 48.6346ZM233.113 48.7246V46.7246H231.113V48.7246H233.113ZM233.113 69.5146V71.5146H235.113V69.5146H233.113ZM233.113 39.2746H231.113V41.2746H233.113V39.2746ZM255.253 37.9246L256.101 39.7356L256.101 39.7356L255.253 37.9246ZM259.753 33.9646L258.063 32.8945L258.058 32.9022L258.053 32.9099L259.753 33.9646ZM259.753 21.3646L261.425 20.2686L261.425 20.2686L259.753 21.3646ZM255.253 17.4046L254.335 19.1819L254.358 19.1937L254.381 19.205L255.253 17.4046ZM233.113 15.9646V13.9646H231.113V15.9646H233.113ZM224.403 69.5146V6.51464H220.403V69.5146H224.403ZM222.403 8.51464H250.303V4.51464H222.403V8.51464ZM250.303 8.51464C254.012 8.51464 257.339 9.34176 260.325 10.9704L262.24 7.45886C258.626 5.48753 254.633 4.51464 250.303 4.51464V8.51464ZM260.363 10.9906C263.407 12.5671 265.807 14.7802 267.595 17.6518L270.99 15.5375C268.818 12.0491 265.878 9.34223 262.202 7.43866L260.363 10.9906ZM267.595 17.6518C269.354 20.4772 270.263 23.7917 270.263 27.6646H274.263C274.263 23.1375 273.191 19.0721 270.99 15.5375L267.595 17.6518ZM270.263 27.6646C270.263 31.5139 269.306 34.8492 267.434 37.7369L270.791 39.9124C273.119 36.3201 274.263 32.2154 274.263 27.6646H270.263ZM267.429 37.7447C265.584 40.6208 263.124 42.8405 260.016 44.4221L261.829 47.9872C265.561 46.0888 268.561 43.3885 270.796 39.9046L267.429 37.7447ZM259.153 47.1367L265.363 58.9267L268.902 57.0626L262.692 45.2726L259.153 47.1367ZM265.377 58.9523C265.84 59.8021 266.433 60.5551 267.193 61.1246L269.593 57.9246C269.392 57.7742 269.145 57.5072 268.888 57.0369L265.377 58.9523ZM267.333 61.2206C268.229 61.7809 269.264 61.9746 270.283 61.9746V57.9746C269.741 57.9746 269.516 57.8683 269.453 57.8287L267.333 61.2206ZM270.283 61.9746H275.593V57.9746H270.283V61.9746ZM273.593 59.9746V69.5146H277.593V59.9746H273.593ZM275.593 67.5146H268.663V71.5146H275.593V67.5146ZM268.663 67.5146C266.544 67.5146 264.727 67.0029 263.153 66.0187L261.033 69.4106C263.298 70.8264 265.861 71.5146 268.663 71.5146V67.5146ZM263.19 66.0426C261.544 64.9623 260.234 63.5532 259.248 61.789L255.757 63.7403C257.051 66.0561 258.801 67.947 260.995 69.3867L263.19 66.0426ZM259.275 61.8387L251.895 47.7087L248.35 49.5606L255.73 63.6906L259.275 61.8387ZM249.924 46.6446C249.395 46.6974 248.832 46.7246 248.233 46.7246V50.7246C248.953 50.7246 249.65 50.6919 250.322 50.6247L249.924 46.6446ZM248.233 46.7246C248.231 46.7246 248.23 46.7246 248.229 46.7246C248.228 46.7246 248.227 46.7246 248.225 46.7246C248.224 46.7246 248.223 46.7246 248.222 46.7246C248.221 46.7246 248.22 46.7246 248.218 46.7246C248.217 46.7246 248.216 46.7246 248.215 46.7246C248.214 46.7246 248.213 46.7246 248.211 46.7246C248.21 46.7246 248.209 46.7246 248.208 46.7246C248.207 46.7246 248.206 46.7246 248.204 46.7246C248.203 46.7246 248.202 46.7246 248.201 46.7246C248.2 46.7246 248.199 46.7246 248.197 46.7246C248.196 46.7246 248.195 46.7246 248.194 46.7246C248.193 46.7246 248.192 46.7246 248.19 46.7246C248.189 46.7246 248.188 46.7246 248.187 46.7246C248.186 46.7246 248.184 46.7246 248.183 46.7246C248.182 46.7246 248.181 46.7246 248.18 46.7246C248.179 46.7246 248.177 46.7246 248.176 46.7246C248.175 46.7246 248.174 46.7246 248.173 46.7246C248.172 46.7246 248.17 46.7246 248.169 46.7246C248.168 46.7246 248.167 46.7246 248.166 46.7246C248.165 46.7246 248.163 46.7246 248.162 46.7246C248.161 46.7246 248.16 46.7246 248.159 46.7246C248.158 46.7246 248.156 46.7246 248.155 46.7246C248.154 46.7246 248.153 46.7246 248.152 46.7246C248.15 46.7246 248.149 46.7246 248.148 46.7246C248.147 46.7246 248.146 46.7246 248.145 46.7246C248.143 46.7246 248.142 46.7246 248.141 46.7246C248.14 46.7246 248.139 46.7246 248.138 46.7246C248.136 46.7246 248.135 46.7246 248.134 46.7246C248.133 46.7246 248.132 46.7246 248.131 46.7246C248.129 46.7246 248.128 46.7246 248.127 46.7246C248.126 46.7246 248.125 46.7246 248.124 46.7246C248.122 46.7246 248.121 46.7246 248.12 46.7246C248.119 46.7246 248.118 46.7246 248.117 46.7246C248.115 46.7246 248.114 46.7246 248.113 46.7246C248.112 46.7246 248.111 46.7246 248.109 46.7246C248.108 46.7246 248.107 46.7246 248.106 46.7246C248.105 46.7246 248.104 46.7246 248.102 46.7246C248.101 46.7246 248.1 46.7246 248.099 46.7246C248.098 46.7246 248.097 46.7246 248.095 46.7246C248.094 46.7246 248.093 46.7246 248.092 46.7246C248.091 46.7246 248.09 46.7246 248.088 46.7246C248.087 46.7246 248.086 46.7246 248.085 46.7246C248.084 46.7246 248.083 46.7246 248.081 46.7246C248.08 46.7246 248.079 46.7246 248.078 46.7246C248.077 46.7246 248.075 46.7246 248.074 46.7246C248.073 46.7246 248.072 46.7246 248.071 46.7246C248.07 46.7246 248.068 46.7246 248.067 46.7246C248.066 46.7246 248.065 46.7246 248.064 46.7246C248.063 46.7246 248.061 46.7246 248.06 46.7246C248.059 46.7246 248.058 46.7246 248.057 46.7246C248.056 46.7246 248.054 46.7246 248.053 46.7246C248.052 46.7246 248.051 46.7246 248.05 46.7246C248.049 46.7246 248.047 46.7246 248.046 46.7246C248.045 46.7246 248.044 46.7246 248.043 46.7246C248.042 46.7246 248.04 46.7246 248.039 46.7246C248.038 46.7246 248.037 46.7246 248.036 46.7246C248.034 46.7246 248.033 46.7246 248.032 46.7246C248.031 46.7246 248.03 46.7246 248.029 46.7246C248.027 46.7246 248.026 46.7246 248.025 46.7246C248.024 46.7246 248.023 46.7246 248.022 46.7246C248.02 46.7246 248.019 46.7246 248.018 46.7246C248.017 46.7246 248.016 46.7246 248.015 46.7246C248.013 46.7246 248.012 46.7246 248.011 46.7246C248.01 46.7246 248.009 46.7246 248.008 46.7246C248.006 46.7246 248.005 46.7246 248.004 46.7246C248.003 46.7246 248.002 46.7246 248 46.7246C247.999 46.7246 247.998 46.7246 247.997 46.7246C247.996 46.7246 247.995 46.7246 247.993 46.7246C247.992 46.7246 247.991 46.7246 247.99 46.7246C247.989 46.7246 247.988 46.7246 247.986 46.7246C247.985 46.7246 247.984 46.7246 247.983 46.7246C247.982 46.7246 247.981 46.7246 247.979 46.7246C247.978 46.7246 247.977 46.7246 247.976 46.7246C247.975 46.7246 247.974 46.7246 247.972 46.7246C247.971 46.7246 247.97 46.7246 247.969 46.7246C247.968 46.7246 247.967 46.7246 247.965 46.7246C247.964 46.7246 247.963 46.7246 247.962 46.7246C247.961 46.7246 247.959 46.7246 247.958 46.7246C247.957 46.7246 247.956 46.7246 247.955 46.7246C247.954 46.7246 247.952 46.7246 247.951 46.7246C247.95 46.7246 247.949 46.7246 247.948 46.7246C247.947 46.7246 247.945 46.7246 247.944 46.7246C247.943 46.7246 247.942 46.7246 247.941 46.7246C247.94 46.7246 247.938 46.7246 247.937 46.7246C247.936 46.7246 247.935 46.7246 247.934 46.7246C247.933 46.7246 247.931 46.7246 247.93 46.7246C247.929 46.7246 247.928 46.7246 247.927 46.7246C247.925 46.7246 247.924 46.7246 247.923 46.7246C247.922 46.7246 247.921 46.7246 247.92 46.7246C247.918 46.7246 247.917 46.7246 247.916 46.7246C247.915 46.7246 247.914 46.7246 247.913 46.7246C247.911 46.7246 247.91 46.7246 247.909 46.7246C247.908 46.7246 247.907 46.7246 247.906 46.7246C247.904 46.7246 247.903 46.7246 247.902 46.7246C247.901 46.7246 247.9 46.7246 247.899 46.7246C247.897 46.7246 247.896 46.7246 247.895 46.7246C247.894 46.7246 247.893 46.7246 247.892 46.7246C247.89 46.7246 247.889 46.7246 247.888 46.7246C247.887 46.7246 247.886 46.7246 247.884 46.7246C247.883 46.7246 247.882 46.7246 247.881 46.7246C247.88 46.7246 247.879 46.7246 247.877 46.7246C247.876 46.7246 247.875 46.7246 247.874 46.7246C247.873 46.7246 247.872 46.7246 247.87 46.7246C247.869 46.7246 247.868 46.7246 247.867 46.7246C247.866 46.7246 247.865 46.7246 247.863 46.7246C247.862 46.7246 247.861 46.7246 247.86 46.7246C247.859 46.7246 247.858 46.7246 247.856 46.7246C247.855 46.7246 247.854 46.7246 247.853 46.7246C247.852 46.7246 247.85 46.7246 247.849 46.7246C247.848 46.7246 247.847 46.7246 247.846 46.7246C247.845 46.7246 247.843 46.7246 247.842 46.7246C247.841 46.7246 247.84 46.7246 247.839 46.7246C247.838 46.7246 247.836 46.7246 247.835 46.7246C247.834 46.7246 247.833 46.7246 247.832 46.7246C247.831 46.7246 247.829 46.7246 247.828 46.7246C247.827 46.7246 247.826 46.7246 247.825 46.7246C247.824 46.7246 247.822 46.7246 247.821 46.7246C247.82 46.7246 247.819 46.7246 247.818 46.7246C247.817 46.7246 247.815 46.7246 247.814 46.7246C247.813 46.7246 247.812 46.7246 247.811 46.7246C247.809 46.7246 247.808 46.7246 247.807 46.7246C247.806 46.7246 247.805 46.7246 247.804 46.7246C247.802 46.7246 247.801 46.7246 247.8 46.7246C247.799 46.7246 247.798 46.7246 247.797 46.7246C247.795 46.7246 247.794 46.7246 247.793 46.7246C247.792 46.7246 247.791 46.7246 247.79 46.7246C247.788 46.7246 247.787 46.7246 247.786 46.7246C247.785 46.7246 247.784 46.7246 247.783 46.7246C247.781 46.7246 247.78 46.7246 247.779 46.7246C247.778 46.7246 247.777 46.7246 247.775 46.7246C247.774 46.7246 247.773 46.7246 247.772 46.7246C247.771 46.7246 247.77 46.7246 247.768 46.7246C247.767 46.7246 247.766 46.7246 247.765 46.7246C247.764 46.7246 247.763 46.7246 247.761 46.7246C247.76 46.7246 247.759 46.7246 247.758 46.7246C247.757 46.7246 247.756 46.7246 247.754 46.7246C247.753 46.7246 247.752 46.7246 247.751 46.7246C247.75 46.7246 247.749 46.7246 247.747 46.7246C247.746 46.7246 247.745 46.7246 247.744 46.7246C247.743 46.7246 247.742 46.7246 247.74 46.7246C247.739 46.7246 247.738 46.7246 247.737 46.7246C247.736 46.7246 247.734 46.7246 247.733 46.7246C247.732 46.7246 247.731 46.7246 247.73 46.7246C247.729 46.7246 247.727 46.7246 247.726 46.7246C247.725 46.7246 247.724 46.7246 247.723 46.7246C247.722 46.7246 247.72 46.7246 247.719 46.7246C247.718 46.7246 247.717 46.7246 247.716 46.7246C247.715 46.7246 247.713 46.7246 247.712 46.7246C247.711 46.7246 247.71 46.7246 247.709 46.7246C247.708 46.7246 247.706 46.7246 247.705 46.7246C247.704 46.7246 247.703 46.7246 247.702 46.7246C247.7 46.7246 247.699 46.7246 247.698 46.7246C247.697 46.7246 247.696 46.7246 247.695 46.7246C247.693 46.7246 247.692 46.7246 247.691 46.7246C247.69 46.7246 247.689 46.7246 247.688 46.7246C247.686 46.7246 247.685 46.7246 247.684 46.7246C247.683 46.7246 247.682 46.7246 247.681 46.7246C247.679 46.7246 247.678 46.7246 247.677 46.7246C247.676 46.7246 247.675 46.7246 247.674 46.7246C247.672 46.7246 247.671 46.7246 247.67 46.7246C247.669 46.7246 247.668 46.7246 247.667 46.7246C247.665 46.7246 247.664 46.7246 247.663 46.7246C247.662 46.7246 247.661 46.7246 247.659 46.7246C247.658 46.7246 247.657 46.7246 247.656 46.7246C247.655 46.7246 247.654 46.7246 247.652 46.7246C247.651 46.7246 247.65 46.7246 247.649 46.7246C247.648 46.7246 247.647 46.7246 247.645 46.7246C247.644 46.7246 247.643 46.7246 247.642 46.7246C247.641 46.7246 247.64 46.7246 247.638 46.7246C247.637 46.7246 247.636 46.7246 247.635 46.7246C247.634 46.7246 247.633 46.7246 247.631 46.7246C247.63 46.7246 247.629 46.7246 247.628 46.7246C247.627 46.7246 247.625 46.7246 247.624 46.7246C247.623 46.7246 247.622 46.7246 247.621 46.7246C247.62 46.7246 247.618 46.7246 247.617 46.7246C247.616 46.7246 247.615 46.7246 247.614 46.7246C247.613 46.7246 247.611 46.7246 247.61 46.7246C247.609 46.7246 247.608 46.7246 247.607 46.7246C247.606 46.7246 247.604 46.7246 247.603 46.7246C247.602 46.7246 247.601 46.7246 247.6 46.7246C247.599 46.7246 247.597 46.7246 247.596 46.7246C247.595 46.7246 247.594 46.7246 247.593 46.7246C247.592 46.7246 247.59 46.7246 247.589 46.7246C247.588 46.7246 247.587 46.7246 247.586 46.7246C247.584 46.7246 247.583 46.7246 247.582 46.7246C247.581 46.7246 247.58 46.7246 247.579 46.7246C247.577 46.7246 247.576 46.7246 247.575 46.7246C247.574 46.7246 247.573 46.7246 247.572 46.7246C247.57 46.7246 247.569 46.7246 247.568 46.7246C247.567 46.7246 247.566 46.7246 247.565 46.7246C247.563 46.7246 247.562 46.7246 247.561 46.7246C247.56 46.7246 247.559 46.7246 247.558 46.7246C247.556 46.7246 247.555 46.7246 247.554 46.7246C247.553 46.7246 247.552 46.7246 247.55 46.7246C247.549 46.7246 247.548 46.7246 247.547 46.7246C247.546 46.7246 247.545 46.7246 247.543 46.7246C247.542 46.7246 247.541 46.7246 247.54 46.7246C247.539 46.7246 247.538 46.7246 247.536 46.7246C247.535 46.7246 247.534 46.7246 247.533 46.7246C247.532 46.7246 247.531 46.7246 247.529 46.7246C247.528 46.7246 247.527 46.7246 247.526 46.7246C247.525 46.7246 247.524 46.7246 247.522 46.7246C247.521 46.7246 247.52 46.7246 247.519 46.7246C247.518 46.7246 247.517 46.7246 247.515 46.7246C247.514 46.7246 247.513 46.7246 247.512 46.7246C247.511 46.7246 247.509 46.7246 247.508 46.7246C247.507 46.7246 247.506 46.7246 247.505 46.7246C247.504 46.7246 247.502 46.7246 247.501 46.7246C247.5 46.7246 247.499 46.7246 247.498 46.7246C247.497 46.7246 247.495 46.7246 247.494 46.7246C247.493 46.7246 247.492 46.7246 247.491 46.7246C247.49 46.7246 247.488 46.7246 247.487 46.7246C247.486 46.7246 247.485 46.7246 247.484 46.7246C247.483 46.7246 247.481 46.7246 247.48 46.7246C247.479 46.7246 247.478 46.7246 247.477 46.7246C247.475 46.7246 247.474 46.7246 247.473 46.7246C247.472 46.7246 247.471 46.7246 247.47 46.7246C247.468 46.7246 247.467 46.7246 247.466 46.7246C247.465 46.7246 247.464 46.7246 247.463 46.7246C247.461 46.7246 247.46 46.7246 247.459 46.7246C247.458 46.7246 247.457 46.7246 247.456 46.7246C247.454 46.7246 247.453 46.7246 247.452 46.7246C247.451 46.7246 247.45 46.7246 247.449 46.7246C247.447 46.7246 247.446 46.7246 247.445 46.7246C247.444 46.7246 247.443 46.7246 247.442 46.7246C247.44 46.7246 247.439 46.7246 247.438 46.7246C247.437 46.7246 247.436 46.7246 247.434 46.7246C247.433 46.7246 247.432 46.7246 247.431 46.7246C247.43 46.7246 247.429 46.7246 247.427 46.7246C247.426 46.7246 247.425 46.7246 247.424 46.7246C247.423 46.7246 247.422 46.7246 247.42 46.7246C247.419 46.7246 247.418 46.7246 247.417 46.7246C247.416 46.7246 247.415 46.7246 247.413 46.7246C247.412 46.7246 247.411 46.7246 247.41 46.7246C247.409 46.7246 247.408 46.7246 247.406 46.7246C247.405 46.7246 247.404 46.7246 247.403 46.7246C247.402 46.7246 247.4 46.7246 247.399 46.7246C247.398 46.7246 247.397 46.7246 247.396 46.7246C247.395 46.7246 247.393 46.7246 247.392 46.7246C247.391 46.7246 247.39 46.7246 247.389 46.7246C247.388 46.7246 247.386 46.7246 247.385 46.7246C247.384 46.7246 247.383 46.7246 247.382 46.7246C247.381 46.7246 247.379 46.7246 247.378 46.7246C247.377 46.7246 247.376 46.7246 247.375 46.7246C247.374 46.7246 247.372 46.7246 247.371 46.7246C247.37 46.7246 247.369 46.7246 247.368 46.7246C247.367 46.7246 247.365 46.7246 247.364 46.7246C247.363 46.7246 247.362 46.7246 247.361 46.7246C247.359 46.7246 247.358 46.7246 247.357 46.7246C247.356 46.7246 247.355 46.7246 247.354 46.7246C247.352 46.7246 247.351 46.7246 247.35 46.7246C247.349 46.7246 247.348 46.7246 247.347 46.7246C247.345 46.7246 247.344 46.7246 247.343 46.7246C247.342 46.7246 247.341 46.7246 247.34 46.7246C247.338 46.7246 247.337 46.7246 247.336 46.7246C247.335 46.7246 247.334 46.7246 247.333 46.7246C247.331 46.7246 247.33 46.7246 247.329 46.7246C247.328 46.7246 247.327 46.7246 247.325 46.7246C247.324 46.7246 247.323 46.7246 247.322 46.7246C247.321 46.7246 247.32 46.7246 247.318 46.7246C247.317 46.7246 247.316 46.7246 247.315 46.7246C247.314 46.7246 247.313 46.7246 247.311 46.7246C247.31 46.7246 247.309 46.7246 247.308 46.7246C247.307 46.7246 247.306 46.7246 247.304 46.7246C247.303 46.7246 247.302 46.7246 247.301 46.7246C247.3 46.7246 247.299 46.7246 247.297 46.7246C247.296 46.7246 247.295 46.7246 247.294 46.7246C247.293 46.7246 247.292 46.7246 247.29 46.7246C247.289 46.7246 247.288 46.7246 247.287 46.7246C247.286 46.7246 247.284 46.7246 247.283 46.7246C247.282 46.7246 247.281 46.7246 247.28 46.7246C247.279 46.7246 247.277 46.7246 247.276 46.7246C247.275 46.7246 247.274 46.7246 247.273 46.7246C247.272 46.7246 247.27 46.7246 247.269 46.7246C247.268 46.7246 247.267 46.7246 247.266 46.7246C247.265 46.7246 247.263 46.7246 247.262 46.7246C247.261 46.7246 247.26 46.7246 247.259 46.7246C247.258 46.7246 247.256 46.7246 247.255 46.7246C247.254 46.7246 247.253 46.7246 247.252 46.7246C247.25 46.7246 247.249 46.7246 247.248 46.7246C247.247 46.7246 247.246 46.7246 247.245 46.7246C247.243 46.7246 247.242 46.7246 247.241 46.7246C247.24 46.7246 247.239 46.7246 247.238 46.7246C247.236 46.7246 247.235 46.7246 247.234 46.7246C247.233 46.7246 247.232 46.7246 247.231 46.7246C247.229 46.7246 247.228 46.7246 247.227 46.7246C247.226 46.7246 247.225 46.7246 247.224 46.7246C247.222 46.7246 247.221 46.7246 247.22 46.7246C247.219 46.7246 247.218 46.7246 247.217 46.7246C247.215 46.7246 247.214 46.7246 247.213 46.7246C247.212 46.7246 247.211 46.7246 247.209 46.7246C247.208 46.7246 247.207 46.7246 247.206 46.7246C247.205 46.7246 247.204 46.7246 247.202 46.7246C247.201 46.7246 247.2 46.7246 247.199 46.7246C247.198 46.7246 247.197 46.7246 247.195 46.7246C247.194 46.7246 247.193 46.7246 247.192 46.7246C247.191 46.7246 247.19 46.7246 247.188 46.7246C247.187 46.7246 247.186 46.7246 247.185 46.7246C247.184 46.7246 247.183 46.7246 247.181 46.7246C247.18 46.7246 247.179 46.7246 247.178 46.7246C247.177 46.7246 247.175 46.7246 247.174 46.7246C247.173 46.7246 247.172 46.7246 247.171 46.7246C247.17 46.7246 247.168 46.7246 247.167 46.7246C247.166 46.7246 247.165 46.7246 247.164 46.7246C247.163 46.7246 247.161 46.7246 247.16 46.7246C247.159 46.7246 247.158 46.7246 247.157 46.7246C247.156 46.7246 247.154 46.7246 247.153 46.7246C247.152 46.7246 247.151 46.7246 247.15 46.7246C247.149 46.7246 247.147 46.7246 247.146 46.7246C247.145 46.7246 247.144 46.7246 247.143 46.7246C247.142 46.7246 247.14 46.7246 247.139 46.7246C247.138 46.7246 247.137 46.7246 247.136 46.7246C247.134 46.7246 247.133 46.7246 247.132 46.7246C247.131 46.7246 247.13 46.7246 247.129 46.7246C247.127 46.7246 247.126 46.7246 247.125 46.7246C247.124 46.7246 247.123 46.7246 247.122 46.7246C247.12 46.7246 247.119 46.7246 247.118 46.7246C247.117 46.7246 247.116 46.7246 247.115 46.7246C247.113 46.7246 247.112 46.7246 247.111 46.7246C247.11 46.7246 247.109 46.7246 247.108 46.7246C247.106 46.7246 247.105 46.7246 247.104 46.7246C247.103 46.7246 247.102 46.7246 247.1 46.7246C247.099 46.7246 247.098 46.7246 247.097 46.7246C247.096 46.7246 247.095 46.7246 247.093 46.7246C247.092 46.7246 247.091 46.7246 247.09 46.7246C247.089 46.7246 247.088 46.7246 247.086 46.7246C247.085 46.7246 247.084 46.7246 247.083 46.7246C247.082 46.7246 247.081 46.7246 247.079 46.7246C247.078 46.7246 247.077 46.7246 247.076 46.7246C247.075 46.7246 247.074 46.7246 247.072 46.7246C247.071 46.7246 247.07 46.7246 247.069 46.7246C247.068 46.7246 247.067 46.7246 247.065 46.7246C247.064 46.7246 247.063 46.7246 247.062 46.7246C247.061 46.7246 247.059 46.7246 247.058 46.7246C247.057 46.7246 247.056 46.7246 247.055 46.7246C247.054 46.7246 247.052 46.7246 247.051 46.7246C247.05 46.7246 247.049 46.7246 247.048 46.7246C247.047 46.7246 247.045 46.7246 247.044 46.7246C247.043 46.7246 247.042 46.7246 247.041 46.7246C247.04 46.7246 247.038 46.7246 247.037 46.7246C247.036 46.7246 247.035 46.7246 247.034 46.7246C247.033 46.7246 247.031 46.7246 247.03 46.7246C247.029 46.7246 247.028 46.7246 247.027 46.7246C247.025 46.7246 247.024 46.7246 247.023 46.7246C247.022 46.7246 247.021 46.7246 247.02 46.7246C247.018 46.7246 247.017 46.7246 247.016 46.7246C247.015 46.7246 247.014 46.7246 247.013 46.7246C247.011 46.7246 247.01 46.7246 247.009 46.7246C247.008 46.7246 247.007 46.7246 247.006 46.7246C247.004 46.7246 247.003 46.7246 247.002 46.7246C247.001 46.7246 247 46.7246 246.999 46.7246C246.997 46.7246 246.996 46.7246 246.995 46.7246C246.994 46.7246 246.993 46.7246 246.992 46.7246C246.99 46.7246 246.989 46.7246 246.988 46.7246C246.987 46.7246 246.986 46.7246 246.984 46.7246C246.983 46.7246 246.982 46.7246 246.981 46.7246C246.98 46.7246 246.979 46.7246 246.977 46.7246C246.976 46.7246 246.975 46.7246 246.974 46.7246C246.973 46.7246 246.972 46.7246 246.97 46.7246C246.969 46.7246 246.968 46.7246 246.967 46.7246C246.966 46.7246 246.965 46.7246 246.963 46.7246C246.962 46.7246 246.961 46.7246 246.96 46.7246C246.959 46.7246 246.958 46.7246 246.956 46.7246C246.955 46.7246 246.954 46.7246 246.953 46.7246C246.952 46.7246 246.95 46.7246 246.949 46.7246C246.948 46.7246 246.947 46.7246 246.946 46.7246C246.945 46.7246 246.943 46.7246 246.942 46.7246C246.941 46.7246 246.94 46.7246 246.939 46.7246C246.938 46.7246 246.936 46.7246 246.935 46.7246C246.934 46.7246 246.933 46.7246 246.932 46.7246C246.931 46.7246 246.929 46.7246 246.928 46.7246C246.927 46.7246 246.926 46.7246 246.925 46.7246C246.924 46.7246 246.922 46.7246 246.921 46.7246C246.92 46.7246 246.919 46.7246 246.918 46.7246C246.917 46.7246 246.915 46.7246 246.914 46.7246C246.913 46.7246 246.912 46.7246 246.911 46.7246C246.909 46.7246 246.908 46.7246 246.907 46.7246C246.906 46.7246 246.905 46.7246 246.904 46.7246C246.902 46.7246 246.901 46.7246 246.9 46.7246C246.899 46.7246 246.898 46.7246 246.897 46.7246C246.895 46.7246 246.894 46.7246 246.893 46.7246C246.892 46.7246 246.891 46.7246 246.89 46.7246C246.888 46.7246 246.887 46.7246 246.886 46.7246C246.885 46.7246 246.884 46.7246 246.883 46.7246C246.881 46.7246 246.88 46.7246 246.879 46.7246C246.878 46.7246 246.877 46.7246 246.875 46.7246C246.874 46.7246 246.873 46.7246 246.872 46.7246C246.871 46.7246 246.87 46.7246 246.868 46.7246C246.867 46.7246 246.866 46.7246 246.865 46.7246C246.864 46.7246 246.863 46.7246 246.861 46.7246C246.86 46.7246 246.859 46.7246 246.858 46.7246C246.857 46.7246 246.856 46.7246 246.854 46.7246C246.853 46.7246 246.852 46.7246 246.851 46.7246C246.85 46.7246 246.849 46.7246 246.847 46.7246C246.846 46.7246 246.845 46.7246 246.844 46.7246C246.843 46.7246 246.842 46.7246 246.84 46.7246C246.839 46.7246 246.838 46.7246 246.837 46.7246C246.836 46.7246 246.834 46.7246 246.833 46.7246C246.832 46.7246 246.831 46.7246 246.83 46.7246C246.829 46.7246 246.827 46.7246 246.826 46.7246C246.825 46.7246 246.824 46.7246 246.823 46.7246C246.822 46.7246 246.82 46.7246 246.819 46.7246C246.818 46.7246 246.817 46.7246 246.816 46.7246C246.815 46.7246 246.813 46.7246 246.812 46.7246C246.811 46.7246 246.81 46.7246 246.809 46.7246C246.808 46.7246 246.806 46.7246 246.805 46.7246C246.804 46.7246 246.803 46.7246 246.802 46.7246C246.8 46.7246 246.799 46.7246 246.798 46.7246C246.797 46.7246 246.796 46.7246 246.795 46.7246C246.793 46.7246 246.792 46.7246 246.791 46.7246C246.79 46.7246 246.789 46.7246 246.788 46.7246C246.786 46.7246 246.785 46.7246 246.784 46.7246C246.783 46.7246 246.782 46.7246 246.781 46.7246C246.779 46.7246 246.778 46.7246 246.777 46.7246C246.776 46.7246 246.775 46.7246 246.774 46.7246C246.772 46.7246 246.771 46.7246 246.77 46.7246C246.769 46.7246 246.768 46.7246 246.767 46.7246C246.765 46.7246 246.764 46.7246 246.763 46.7246C246.762 46.7246 246.761 46.7246 246.759 46.7246C246.758 46.7246 246.757 46.7246 246.756 46.7246C246.755 46.7246 246.754 46.7246 246.752 46.7246C246.751 46.7246 246.75 46.7246 246.749 46.7246C246.748 46.7246 246.747 46.7246 246.745 46.7246C246.744 46.7246 246.743 46.7246 246.742 46.7246C246.741 46.7246 246.74 46.7246 246.738 46.7246C246.737 46.7246 246.736 46.7246 246.735 46.7246C246.734 46.7246 246.733 46.7246 246.731 46.7246C246.73 46.7246 246.729 46.7246 246.728 46.7246C246.727 46.7246 246.725 46.7246 246.724 46.7246C246.723 46.7246 246.722 46.7246 246.721 46.7246C246.72 46.7246 246.718 46.7246 246.717 46.7246C246.716 46.7246 246.715 46.7246 246.714 46.7246C246.713 46.7246 246.711 46.7246 246.71 46.7246C246.709 46.7246 246.708 46.7246 246.707 46.7246C246.706 46.7246 246.704 46.7246 246.703 46.7246C246.702 46.7246 246.701 46.7246 246.7 46.7246C246.699 46.7246 246.697 46.7246 246.696 46.7246C246.695 46.7246 246.694 46.7246 246.693 46.7246C246.692 46.7246 246.69 46.7246 246.689 46.7246C246.688 46.7246 246.687 46.7246 246.686 46.7246C246.684 46.7246 246.683 46.7246 246.682 46.7246C246.681 46.7246 246.68 46.7246 246.679 46.7246C246.677 46.7246 246.676 46.7246 246.675 46.7246C246.674 46.7246 246.673 46.7246 246.672 46.7246C246.67 46.7246 246.669 46.7246 246.668 46.7246C246.667 46.7246 246.666 46.7246 246.665 46.7246C246.663 46.7246 246.662 46.7246 246.661 46.7246C246.66 46.7246 246.659 46.7246 246.658 46.7246C246.656 46.7246 246.655 46.7246 246.654 46.7246C246.653 46.7246 246.652 46.7246 246.65 46.7246C246.649 46.7246 246.648 46.7246 246.647 46.7246C246.646 46.7246 246.645 46.7246 246.643 46.7246C246.642 46.7246 246.641 46.7246 246.64 46.7246C246.639 46.7246 246.638 46.7246 246.636 46.7246C246.635 46.7246 246.634 46.7246 246.633 46.7246C246.632 46.7246 246.631 46.7246 246.629 46.7246C246.628 46.7246 246.627 46.7246 246.626 46.7246C246.625 46.7246 246.624 46.7246 246.622 46.7246C246.621 46.7246 246.62 46.7246 246.619 46.7246C246.618 46.7246 246.617 46.7246 246.615 46.7246C246.614 46.7246 246.613 46.7246 246.612 46.7246C246.611 46.7246 246.609 46.7246 246.608 46.7246C246.607 46.7246 246.606 46.7246 246.605 46.7246C246.604 46.7246 246.602 46.7246 246.601 46.7246C246.6 46.7246 246.599 46.7246 246.598 46.7246C246.597 46.7246 246.595 46.7246 246.594 46.7246C246.593 46.7246 246.592 46.7246 246.591 46.7246C246.59 46.7246 246.588 46.7246 246.587 46.7246C246.586 46.7246 246.585 46.7246 246.584 46.7246C246.583 46.7246 246.581 46.7246 246.58 46.7246C246.579 46.7246 246.578 46.7246 246.577 46.7246C246.575 46.7246 246.574 46.7246 246.573 46.7246C246.572 46.7246 246.571 46.7246 246.57 46.7246C246.568 46.7246 246.567 46.7246 246.566 46.7246C246.565 46.7246 246.564 46.7246 246.563 46.7246C246.561 46.7246 246.56 46.7246 246.559 46.7246C246.558 46.7246 246.557 46.7246 246.556 46.7246C246.554 46.7246 246.553 46.7246 246.552 46.7246C246.551 46.7246 246.55 46.7246 246.549 46.7246C246.547 46.7246 246.546 46.7246 246.545 46.7246C246.544 46.7246 246.543 46.7246 246.542 46.7246C246.54 46.7246 246.539 46.7246 246.538 46.7246C246.537 46.7246 246.536 46.7246 246.534 46.7246C246.533 46.7246 246.532 46.7246 246.531 46.7246C246.53 46.7246 246.529 46.7246 246.527 46.7246C246.526 46.7246 246.525 46.7246 246.524 46.7246C246.523 46.7246 246.522 46.7246 246.52 46.7246C246.519 46.7246 246.518 46.7246 246.517 46.7246C246.516 46.7246 246.515 46.7246 246.513 46.7246C246.512 46.7246 246.511 46.7246 246.51 46.7246C246.509 46.7246 246.508 46.7246 246.506 46.7246C246.505 46.7246 246.504 46.7246 246.503 46.7246C246.502 46.7246 246.5 46.7246 246.499 46.7246C246.498 46.7246 246.497 46.7246 246.496 46.7246C246.495 46.7246 246.493 46.7246 246.492 46.7246C246.491 46.7246 246.49 46.7246 246.489 46.7246C246.488 46.7246 246.486 46.7246 246.485 46.7246C246.484 46.7246 246.483 46.7246 246.482 46.7246C246.481 46.7246 246.479 46.7246 246.478 46.7246C246.477 46.7246 246.476 46.7246 246.475 46.7246C246.474 46.7246 246.472 46.7246 246.471 46.7246C246.47 46.7246 246.469 46.7246 246.468 46.7246C246.467 46.7246 246.465 46.7246 246.464 46.7246C246.463 46.7246 246.462 46.7246 246.461 46.7246C246.459 46.7246 246.458 46.7246 246.457 46.7246C246.456 46.7246 246.455 46.7246 246.454 46.7246C246.452 46.7246 246.451 46.7246 246.45 46.7246C246.449 46.7246 246.448 46.7246 246.447 46.7246C246.445 46.7246 246.444 46.7246 246.443 46.7246C246.442 46.7246 246.441 46.7246 246.44 46.7246C246.438 46.7246 246.437 46.7246 246.436 46.7246C246.435 46.7246 246.434 46.7246 246.433 46.7246V50.7246C246.434 50.7246 246.435 50.7246 246.436 50.7246C246.437 50.7246 246.438 50.7246 246.44 50.7246C246.441 50.7246 246.442 50.7246 246.443 50.7246C246.444 50.7246 246.445 50.7246 246.447 50.7246C246.448 50.7246 246.449 50.7246 246.45 50.7246C246.451 50.7246 246.452 50.7246 246.454 50.7246C246.455 50.7246 246.456 50.7246 246.457 50.7246C246.458 50.7246 246.459 50.7246 246.461 50.7246C246.462 50.7246 246.463 50.7246 246.464 50.7246C246.465 50.7246 246.467 50.7246 246.468 50.7246C246.469 50.7246 246.47 50.7246 246.471 50.7246C246.472 50.7246 246.474 50.7246 246.475 50.7246C246.476 50.7246 246.477 50.7246 246.478 50.7246C246.479 50.7246 246.481 50.7246 246.482 50.7246C246.483 50.7246 246.484 50.7246 246.485 50.7246C246.486 50.7246 246.488 50.7246 246.489 50.7246C246.49 50.7246 246.491 50.7246 246.492 50.7246C246.493 50.7246 246.495 50.7246 246.496 50.7246C246.497 50.7246 246.498 50.7246 246.499 50.7246C246.5 50.7246 246.502 50.7246 246.503 50.7246C246.504 50.7246 246.505 50.7246 246.506 50.7246C246.508 50.7246 246.509 50.7246 246.51 50.7246C246.511 50.7246 246.512 50.7246 246.513 50.7246C246.515 50.7246 246.516 50.7246 246.517 50.7246C246.518 50.7246 246.519 50.7246 246.52 50.7246C246.522 50.7246 246.523 50.7246 246.524 50.7246C246.525 50.7246 246.526 50.7246 246.527 50.7246C246.529 50.7246 246.53 50.7246 246.531 50.7246C246.532 50.7246 246.533 50.7246 246.534 50.7246C246.536 50.7246 246.537 50.7246 246.538 50.7246C246.539 50.7246 246.54 50.7246 246.542 50.7246C246.543 50.7246 246.544 50.7246 246.545 50.7246C246.546 50.7246 246.547 50.7246 246.549 50.7246C246.55 50.7246 246.551 50.7246 246.552 50.7246C246.553 50.7246 246.554 50.7246 246.556 50.7246C246.557 50.7246 246.558 50.7246 246.559 50.7246C246.56 50.7246 246.561 50.7246 246.563 50.7246C246.564 50.7246 246.565 50.7246 246.566 50.7246C246.567 50.7246 246.568 50.7246 246.57 50.7246C246.571 50.7246 246.572 50.7246 246.573 50.7246C246.574 50.7246 246.575 50.7246 246.577 50.7246C246.578 50.7246 246.579 50.7246 246.58 50.7246C246.581 50.7246 246.583 50.7246 246.584 50.7246C246.585 50.7246 246.586 50.7246 246.587 50.7246C246.588 50.7246 246.59 50.7246 246.591 50.7246C246.592 50.7246 246.593 50.7246 246.594 50.7246C246.595 50.7246 246.597 50.7246 246.598 50.7246C246.599 50.7246 246.6 50.7246 246.601 50.7246C246.602 50.7246 246.604 50.7246 246.605 50.7246C246.606 50.7246 246.607 50.7246 246.608 50.7246C246.609 50.7246 246.611 50.7246 246.612 50.7246C246.613 50.7246 246.614 50.7246 246.615 50.7246C246.617 50.7246 246.618 50.7246 246.619 50.7246C246.62 50.7246 246.621 50.7246 246.622 50.7246C246.624 50.7246 246.625 50.7246 246.626 50.7246C246.627 50.7246 246.628 50.7246 246.629 50.7246C246.631 50.7246 246.632 50.7246 246.633 50.7246C246.634 50.7246 246.635 50.7246 246.636 50.7246C246.638 50.7246 246.639 50.7246 246.64 50.7246C246.641 50.7246 246.642 50.7246 246.643 50.7246C246.645 50.7246 246.646 50.7246 246.647 50.7246C246.648 50.7246 246.649 50.7246 246.65 50.7246C246.652 50.7246 246.653 50.7246 246.654 50.7246C246.655 50.7246 246.656 50.7246 246.658 50.7246C246.659 50.7246 246.66 50.7246 246.661 50.7246C246.662 50.7246 246.663 50.7246 246.665 50.7246C246.666 50.7246 246.667 50.7246 246.668 50.7246C246.669 50.7246 246.67 50.7246 246.672 50.7246C246.673 50.7246 246.674 50.7246 246.675 50.7246C246.676 50.7246 246.677 50.7246 246.679 50.7246C246.68 50.7246 246.681 50.7246 246.682 50.7246C246.683 50.7246 246.684 50.7246 246.686 50.7246C246.687 50.7246 246.688 50.7246 246.689 50.7246C246.69 50.7246 246.692 50.7246 246.693 50.7246C246.694 50.7246 246.695 50.7246 246.696 50.7246C246.697 50.7246 246.699 50.7246 246.7 50.7246C246.701 50.7246 246.702 50.7246 246.703 50.7246C246.704 50.7246 246.706 50.7246 246.707 50.7246C246.708 50.7246 246.709 50.7246 246.71 50.7246C246.711 50.7246 246.713 50.7246 246.714 50.7246C246.715 50.7246 246.716 50.7246 246.717 50.7246C246.718 50.7246 246.72 50.7246 246.721 50.7246C246.722 50.7246 246.723 50.7246 246.724 50.7246C246.725 50.7246 246.727 50.7246 246.728 50.7246C246.729 50.7246 246.73 50.7246 246.731 50.7246C246.733 50.7246 246.734 50.7246 246.735 50.7246C246.736 50.7246 246.737 50.7246 246.738 50.7246C246.74 50.7246 246.741 50.7246 246.742 50.7246C246.743 50.7246 246.744 50.7246 246.745 50.7246C246.747 50.7246 246.748 50.7246 246.749 50.7246C246.75 50.7246 246.751 50.7246 246.752 50.7246C246.754 50.7246 246.755 50.7246 246.756 50.7246C246.757 50.7246 246.758 50.7246 246.759 50.7246C246.761 50.7246 246.762 50.7246 246.763 50.7246C246.764 50.7246 246.765 50.7246 246.767 50.7246C246.768 50.7246 246.769 50.7246 246.77 50.7246C246.771 50.7246 246.772 50.7246 246.774 50.7246C246.775 50.7246 246.776 50.7246 246.777 50.7246C246.778 50.7246 246.779 50.7246 246.781 50.7246C246.782 50.7246 246.783 50.7246 246.784 50.7246C246.785 50.7246 246.786 50.7246 246.788 50.7246C246.789 50.7246 246.79 50.7246 246.791 50.7246C246.792 50.7246 246.793 50.7246 246.795 50.7246C246.796 50.7246 246.797 50.7246 246.798 50.7246C246.799 50.7246 246.8 50.7246 246.802 50.7246C246.803 50.7246 246.804 50.7246 246.805 50.7246C246.806 50.7246 246.808 50.7246 246.809 50.7246C246.81 50.7246 246.811 50.7246 246.812 50.7246C246.813 50.7246 246.815 50.7246 246.816 50.7246C246.817 50.7246 246.818 50.7246 246.819 50.7246C246.82 50.7246 246.822 50.7246 246.823 50.7246C246.824 50.7246 246.825 50.7246 246.826 50.7246C246.827 50.7246 246.829 50.7246 246.83 50.7246C246.831 50.7246 246.832 50.7246 246.833 50.7246C246.834 50.7246 246.836 50.7246 246.837 50.7246C246.838 50.7246 246.839 50.7246 246.84 50.7246C246.842 50.7246 246.843 50.7246 246.844 50.7246C246.845 50.7246 246.846 50.7246 246.847 50.7246C246.849 50.7246 246.85 50.7246 246.851 50.7246C246.852 50.7246 246.853 50.7246 246.854 50.7246C246.856 50.7246 246.857 50.7246 246.858 50.7246C246.859 50.7246 246.86 50.7246 246.861 50.7246C246.863 50.7246 246.864 50.7246 246.865 50.7246C246.866 50.7246 246.867 50.7246 246.868 50.7246C246.87 50.7246 246.871 50.7246 246.872 50.7246C246.873 50.7246 246.874 50.7246 246.875 50.7246C246.877 50.7246 246.878 50.7246 246.879 50.7246C246.88 50.7246 246.881 50.7246 246.883 50.7246C246.884 50.7246 246.885 50.7246 246.886 50.7246C246.887 50.7246 246.888 50.7246 246.89 50.7246C246.891 50.7246 246.892 50.7246 246.893 50.7246C246.894 50.7246 246.895 50.7246 246.897 50.7246C246.898 50.7246 246.899 50.7246 246.9 50.7246C246.901 50.7246 246.902 50.7246 246.904 50.7246C246.905 50.7246 246.906 50.7246 246.907 50.7246C246.908 50.7246 246.909 50.7246 246.911 50.7246C246.912 50.7246 246.913 50.7246 246.914 50.7246C246.915 50.7246 246.917 50.7246 246.918 50.7246C246.919 50.7246 246.92 50.7246 246.921 50.7246C246.922 50.7246 246.924 50.7246 246.925 50.7246C246.926 50.7246 246.927 50.7246 246.928 50.7246C246.929 50.7246 246.931 50.7246 246.932 50.7246C246.933 50.7246 246.934 50.7246 246.935 50.7246C246.936 50.7246 246.938 50.7246 246.939 50.7246C246.94 50.7246 246.941 50.7246 246.942 50.7246C246.943 50.7246 246.945 50.7246 246.946 50.7246C246.947 50.7246 246.948 50.7246 246.949 50.7246C246.95 50.7246 246.952 50.7246 246.953 50.7246C246.954 50.7246 246.955 50.7246 246.956 50.7246C246.958 50.7246 246.959 50.7246 246.96 50.7246C246.961 50.7246 246.962 50.7246 246.963 50.7246C246.965 50.7246 246.966 50.7246 246.967 50.7246C246.968 50.7246 246.969 50.7246 246.97 50.7246C246.972 50.7246 246.973 50.7246 246.974 50.7246C246.975 50.7246 246.976 50.7246 246.977 50.7246C246.979 50.7246 246.98 50.7246 246.981 50.7246C246.982 50.7246 246.983 50.7246 246.984 50.7246C246.986 50.7246 246.987 50.7246 246.988 50.7246C246.989 50.7246 246.99 50.7246 246.992 50.7246C246.993 50.7246 246.994 50.7246 246.995 50.7246C246.996 50.7246 246.997 50.7246 246.999 50.7246C247 50.7246 247.001 50.7246 247.002 50.7246C247.003 50.7246 247.004 50.7246 247.006 50.7246C247.007 50.7246 247.008 50.7246 247.009 50.7246C247.01 50.7246 247.011 50.7246 247.013 50.7246C247.014 50.7246 247.015 50.7246 247.016 50.7246C247.017 50.7246 247.018 50.7246 247.02 50.7246C247.021 50.7246 247.022 50.7246 247.023 50.7246C247.024 50.7246 247.025 50.7246 247.027 50.7246C247.028 50.7246 247.029 50.7246 247.03 50.7246C247.031 50.7246 247.033 50.7246 247.034 50.7246C247.035 50.7246 247.036 50.7246 247.037 50.7246C247.038 50.7246 247.04 50.7246 247.041 50.7246C247.042 50.7246 247.043 50.7246 247.044 50.7246C247.045 50.7246 247.047 50.7246 247.048 50.7246C247.049 50.7246 247.05 50.7246 247.051 50.7246C247.052 50.7246 247.054 50.7246 247.055 50.7246C247.056 50.7246 247.057 50.7246 247.058 50.7246C247.059 50.7246 247.061 50.7246 247.062 50.7246C247.063 50.7246 247.064 50.7246 247.065 50.7246C247.067 50.7246 247.068 50.7246 247.069 50.7246C247.07 50.7246 247.071 50.7246 247.072 50.7246C247.074 50.7246 247.075 50.7246 247.076 50.7246C247.077 50.7246 247.078 50.7246 247.079 50.7246C247.081 50.7246 247.082 50.7246 247.083 50.7246C247.084 50.7246 247.085 50.7246 247.086 50.7246C247.088 50.7246 247.089 50.7246 247.09 50.7246C247.091 50.7246 247.092 50.7246 247.093 50.7246C247.095 50.7246 247.096 50.7246 247.097 50.7246C247.098 50.7246 247.099 50.7246 247.1 50.7246C247.102 50.7246 247.103 50.7246 247.104 50.7246C247.105 50.7246 247.106 50.7246 247.108 50.7246C247.109 50.7246 247.11 50.7246 247.111 50.7246C247.112 50.7246 247.113 50.7246 247.115 50.7246C247.116 50.7246 247.117 50.7246 247.118 50.7246C247.119 50.7246 247.12 50.7246 247.122 50.7246C247.123 50.7246 247.124 50.7246 247.125 50.7246C247.126 50.7246 247.127 50.7246 247.129 50.7246C247.13 50.7246 247.131 50.7246 247.132 50.7246C247.133 50.7246 247.134 50.7246 247.136 50.7246C247.137 50.7246 247.138 50.7246 247.139 50.7246C247.14 50.7246 247.142 50.7246 247.143 50.7246C247.144 50.7246 247.145 50.7246 247.146 50.7246C247.147 50.7246 247.149 50.7246 247.15 50.7246C247.151 50.7246 247.152 50.7246 247.153 50.7246C247.154 50.7246 247.156 50.7246 247.157 50.7246C247.158 50.7246 247.159 50.7246 247.16 50.7246C247.161 50.7246 247.163 50.7246 247.164 50.7246C247.165 50.7246 247.166 50.7246 247.167 50.7246C247.168 50.7246 247.17 50.7246 247.171 50.7246C247.172 50.7246 247.173 50.7246 247.174 50.7246C247.175 50.7246 247.177 50.7246 247.178 50.7246C247.179 50.7246 247.18 50.7246 247.181 50.7246C247.183 50.7246 247.184 50.7246 247.185 50.7246C247.186 50.7246 247.187 50.7246 247.188 50.7246C247.19 50.7246 247.191 50.7246 247.192 50.7246C247.193 50.7246 247.194 50.7246 247.195 50.7246C247.197 50.7246 247.198 50.7246 247.199 50.7246C247.2 50.7246 247.201 50.7246 247.202 50.7246C247.204 50.7246 247.205 50.7246 247.206 50.7246C247.207 50.7246 247.208 50.7246 247.209 50.7246C247.211 50.7246 247.212 50.7246 247.213 50.7246C247.214 50.7246 247.215 50.7246 247.217 50.7246C247.218 50.7246 247.219 50.7246 247.22 50.7246C247.221 50.7246 247.222 50.7246 247.224 50.7246C247.225 50.7246 247.226 50.7246 247.227 50.7246C247.228 50.7246 247.229 50.7246 247.231 50.7246C247.232 50.7246 247.233 50.7246 247.234 50.7246C247.235 50.7246 247.236 50.7246 247.238 50.7246C247.239 50.7246 247.24 50.7246 247.241 50.7246C247.242 50.7246 247.243 50.7246 247.245 50.7246C247.246 50.7246 247.247 50.7246 247.248 50.7246C247.249 50.7246 247.25 50.7246 247.252 50.7246C247.253 50.7246 247.254 50.7246 247.255 50.7246C247.256 50.7246 247.258 50.7246 247.259 50.7246C247.26 50.7246 247.261 50.7246 247.262 50.7246C247.263 50.7246 247.265 50.7246 247.266 50.7246C247.267 50.7246 247.268 50.7246 247.269 50.7246C247.27 50.7246 247.272 50.7246 247.273 50.7246C247.274 50.7246 247.275 50.7246 247.276 50.7246C247.277 50.7246 247.279 50.7246 247.28 50.7246C247.281 50.7246 247.282 50.7246 247.283 50.7246C247.284 50.7246 247.286 50.7246 247.287 50.7246C247.288 50.7246 247.289 50.7246 247.29 50.7246C247.292 50.7246 247.293 50.7246 247.294 50.7246C247.295 50.7246 247.296 50.7246 247.297 50.7246C247.299 50.7246 247.3 50.7246 247.301 50.7246C247.302 50.7246 247.303 50.7246 247.304 50.7246C247.306 50.7246 247.307 50.7246 247.308 50.7246C247.309 50.7246 247.31 50.7246 247.311 50.7246C247.313 50.7246 247.314 50.7246 247.315 50.7246C247.316 50.7246 247.317 50.7246 247.318 50.7246C247.32 50.7246 247.321 50.7246 247.322 50.7246C247.323 50.7246 247.324 50.7246 247.325 50.7246C247.327 50.7246 247.328 50.7246 247.329 50.7246C247.33 50.7246 247.331 50.7246 247.333 50.7246C247.334 50.7246 247.335 50.7246 247.336 50.7246C247.337 50.7246 247.338 50.7246 247.34 50.7246C247.341 50.7246 247.342 50.7246 247.343 50.7246C247.344 50.7246 247.345 50.7246 247.347 50.7246C247.348 50.7246 247.349 50.7246 247.35 50.7246C247.351 50.7246 247.352 50.7246 247.354 50.7246C247.355 50.7246 247.356 50.7246 247.357 50.7246C247.358 50.7246 247.359 50.7246 247.361 50.7246C247.362 50.7246 247.363 50.7246 247.364 50.7246C247.365 50.7246 247.367 50.7246 247.368 50.7246C247.369 50.7246 247.37 50.7246 247.371 50.7246C247.372 50.7246 247.374 50.7246 247.375 50.7246C247.376 50.7246 247.377 50.7246 247.378 50.7246C247.379 50.7246 247.381 50.7246 247.382 50.7246C247.383 50.7246 247.384 50.7246 247.385 50.7246C247.386 50.7246 247.388 50.7246 247.389 50.7246C247.39 50.7246 247.391 50.7246 247.392 50.7246C247.393 50.7246 247.395 50.7246 247.396 50.7246C247.397 50.7246 247.398 50.7246 247.399 50.7246C247.4 50.7246 247.402 50.7246 247.403 50.7246C247.404 50.7246 247.405 50.7246 247.406 50.7246C247.408 50.7246 247.409 50.7246 247.41 50.7246C247.411 50.7246 247.412 50.7246 247.413 50.7246C247.415 50.7246 247.416 50.7246 247.417 50.7246C247.418 50.7246 247.419 50.7246 247.42 50.7246C247.422 50.7246 247.423 50.7246 247.424 50.7246C247.425 50.7246 247.426 50.7246 247.427 50.7246C247.429 50.7246 247.43 50.7246 247.431 50.7246C247.432 50.7246 247.433 50.7246 247.434 50.7246C247.436 50.7246 247.437 50.7246 247.438 50.7246C247.439 50.7246 247.44 50.7246 247.442 50.7246C247.443 50.7246 247.444 50.7246 247.445 50.7246C247.446 50.7246 247.447 50.7246 247.449 50.7246C247.45 50.7246 247.451 50.7246 247.452 50.7246C247.453 50.7246 247.454 50.7246 247.456 50.7246C247.457 50.7246 247.458 50.7246 247.459 50.7246C247.46 50.7246 247.461 50.7246 247.463 50.7246C247.464 50.7246 247.465 50.7246 247.466 50.7246C247.467 50.7246 247.468 50.7246 247.47 50.7246C247.471 50.7246 247.472 50.7246 247.473 50.7246C247.474 50.7246 247.475 50.7246 247.477 50.7246C247.478 50.7246 247.479 50.7246 247.48 50.7246C247.481 50.7246 247.483 50.7246 247.484 50.7246C247.485 50.7246 247.486 50.7246 247.487 50.7246C247.488 50.7246 247.49 50.7246 247.491 50.7246C247.492 50.7246 247.493 50.7246 247.494 50.7246C247.495 50.7246 247.497 50.7246 247.498 50.7246C247.499 50.7246 247.5 50.7246 247.501 50.7246C247.502 50.7246 247.504 50.7246 247.505 50.7246C247.506 50.7246 247.507 50.7246 247.508 50.7246C247.509 50.7246 247.511 50.7246 247.512 50.7246C247.513 50.7246 247.514 50.7246 247.515 50.7246C247.517 50.7246 247.518 50.7246 247.519 50.7246C247.52 50.7246 247.521 50.7246 247.522 50.7246C247.524 50.7246 247.525 50.7246 247.526 50.7246C247.527 50.7246 247.528 50.7246 247.529 50.7246C247.531 50.7246 247.532 50.7246 247.533 50.7246C247.534 50.7246 247.535 50.7246 247.536 50.7246C247.538 50.7246 247.539 50.7246 247.54 50.7246C247.541 50.7246 247.542 50.7246 247.543 50.7246C247.545 50.7246 247.546 50.7246 247.547 50.7246C247.548 50.7246 247.549 50.7246 247.55 50.7246C247.552 50.7246 247.553 50.7246 247.554 50.7246C247.555 50.7246 247.556 50.7246 247.558 50.7246C247.559 50.7246 247.56 50.7246 247.561 50.7246C247.562 50.7246 247.563 50.7246 247.565 50.7246C247.566 50.7246 247.567 50.7246 247.568 50.7246C247.569 50.7246 247.57 50.7246 247.572 50.7246C247.573 50.7246 247.574 50.7246 247.575 50.7246C247.576 50.7246 247.577 50.7246 247.579 50.7246C247.58 50.7246 247.581 50.7246 247.582 50.7246C247.583 50.7246 247.584 50.7246 247.586 50.7246C247.587 50.7246 247.588 50.7246 247.589 50.7246C247.59 50.7246 247.592 50.7246 247.593 50.7246C247.594 50.7246 247.595 50.7246 247.596 50.7246C247.597 50.7246 247.599 50.7246 247.6 50.7246C247.601 50.7246 247.602 50.7246 247.603 50.7246C247.604 50.7246 247.606 50.7246 247.607 50.7246C247.608 50.7246 247.609 50.7246 247.61 50.7246C247.611 50.7246 247.613 50.7246 247.614 50.7246C247.615 50.7246 247.616 50.7246 247.617 50.7246C247.618 50.7246 247.62 50.7246 247.621 50.7246C247.622 50.7246 247.623 50.7246 247.624 50.7246C247.625 50.7246 247.627 50.7246 247.628 50.7246C247.629 50.7246 247.63 50.7246 247.631 50.7246C247.633 50.7246 247.634 50.7246 247.635 50.7246C247.636 50.7246 247.637 50.7246 247.638 50.7246C247.64 50.7246 247.641 50.7246 247.642 50.7246C247.643 50.7246 247.644 50.7246 247.645 50.7246C247.647 50.7246 247.648 50.7246 247.649 50.7246C247.65 50.7246 247.651 50.7246 247.652 50.7246C247.654 50.7246 247.655 50.7246 247.656 50.7246C247.657 50.7246 247.658 50.7246 247.659 50.7246C247.661 50.7246 247.662 50.7246 247.663 50.7246C247.664 50.7246 247.665 50.7246 247.667 50.7246C247.668 50.7246 247.669 50.7246 247.67 50.7246C247.671 50.7246 247.672 50.7246 247.674 50.7246C247.675 50.7246 247.676 50.7246 247.677 50.7246C247.678 50.7246 247.679 50.7246 247.681 50.7246C247.682 50.7246 247.683 50.7246 247.684 50.7246C247.685 50.7246 247.686 50.7246 247.688 50.7246C247.689 50.7246 247.69 50.7246 247.691 50.7246C247.692 50.7246 247.693 50.7246 247.695 50.7246C247.696 50.7246 247.697 50.7246 247.698 50.7246C247.699 50.7246 247.7 50.7246 247.702 50.7246C247.703 50.7246 247.704 50.7246 247.705 50.7246C247.706 50.7246 247.708 50.7246 247.709 50.7246C247.71 50.7246 247.711 50.7246 247.712 50.7246C247.713 50.7246 247.715 50.7246 247.716 50.7246C247.717 50.7246 247.718 50.7246 247.719 50.7246C247.72 50.7246 247.722 50.7246 247.723 50.7246C247.724 50.7246 247.725 50.7246 247.726 50.7246C247.727 50.7246 247.729 50.7246 247.73 50.7246C247.731 50.7246 247.732 50.7246 247.733 50.7246C247.734 50.7246 247.736 50.7246 247.737 50.7246C247.738 50.7246 247.739 50.7246 247.74 50.7246C247.742 50.7246 247.743 50.7246 247.744 50.7246C247.745 50.7246 247.746 50.7246 247.747 50.7246C247.749 50.7246 247.75 50.7246 247.751 50.7246C247.752 50.7246 247.753 50.7246 247.754 50.7246C247.756 50.7246 247.757 50.7246 247.758 50.7246C247.759 50.7246 247.76 50.7246 247.761 50.7246C247.763 50.7246 247.764 50.7246 247.765 50.7246C247.766 50.7246 247.767 50.7246 247.768 50.7246C247.77 50.7246 247.771 50.7246 247.772 50.7246C247.773 50.7246 247.774 50.7246 247.775 50.7246C247.777 50.7246 247.778 50.7246 247.779 50.7246C247.78 50.7246 247.781 50.7246 247.783 50.7246C247.784 50.7246 247.785 50.7246 247.786 50.7246C247.787 50.7246 247.788 50.7246 247.79 50.7246C247.791 50.7246 247.792 50.7246 247.793 50.7246C247.794 50.7246 247.795 50.7246 247.797 50.7246C247.798 50.7246 247.799 50.7246 247.8 50.7246C247.801 50.7246 247.802 50.7246 247.804 50.7246C247.805 50.7246 247.806 50.7246 247.807 50.7246C247.808 50.7246 247.809 50.7246 247.811 50.7246C247.812 50.7246 247.813 50.7246 247.814 50.7246C247.815 50.7246 247.817 50.7246 247.818 50.7246C247.819 50.7246 247.82 50.7246 247.821 50.7246C247.822 50.7246 247.824 50.7246 247.825 50.7246C247.826 50.7246 247.827 50.7246 247.828 50.7246C247.829 50.7246 247.831 50.7246 247.832 50.7246C247.833 50.7246 247.834 50.7246 247.835 50.7246C247.836 50.7246 247.838 50.7246 247.839 50.7246C247.84 50.7246 247.841 50.7246 247.842 50.7246C247.843 50.7246 247.845 50.7246 247.846 50.7246C247.847 50.7246 247.848 50.7246 247.849 50.7246C247.85 50.7246 247.852 50.7246 247.853 50.7246C247.854 50.7246 247.855 50.7246 247.856 50.7246C247.858 50.7246 247.859 50.7246 247.86 50.7246C247.861 50.7246 247.862 50.7246 247.863 50.7246C247.865 50.7246 247.866 50.7246 247.867 50.7246C247.868 50.7246 247.869 50.7246 247.87 50.7246C247.872 50.7246 247.873 50.7246 247.874 50.7246C247.875 50.7246 247.876 50.7246 247.877 50.7246C247.879 50.7246 247.88 50.7246 247.881 50.7246C247.882 50.7246 247.883 50.7246 247.884 50.7246C247.886 50.7246 247.887 50.7246 247.888 50.7246C247.889 50.7246 247.89 50.7246 247.892 50.7246C247.893 50.7246 247.894 50.7246 247.895 50.7246C247.896 50.7246 247.897 50.7246 247.899 50.7246C247.9 50.7246 247.901 50.7246 247.902 50.7246C247.903 50.7246 247.904 50.7246 247.906 50.7246C247.907 50.7246 247.908 50.7246 247.909 50.7246C247.91 50.7246 247.911 50.7246 247.913 50.7246C247.914 50.7246 247.915 50.7246 247.916 50.7246C247.917 50.7246 247.918 50.7246 247.92 50.7246C247.921 50.7246 247.922 50.7246 247.923 50.7246C247.924 50.7246 247.925 50.7246 247.927 50.7246C247.928 50.7246 247.929 50.7246 247.93 50.7246C247.931 50.7246 247.933 50.7246 247.934 50.7246C247.935 50.7246 247.936 50.7246 247.937 50.7246C247.938 50.7246 247.94 50.7246 247.941 50.7246C247.942 50.7246 247.943 50.7246 247.944 50.7246C247.945 50.7246 247.947 50.7246 247.948 50.7246C247.949 50.7246 247.95 50.7246 247.951 50.7246C247.952 50.7246 247.954 50.7246 247.955 50.7246C247.956 50.7246 247.957 50.7246 247.958 50.7246C247.959 50.7246 247.961 50.7246 247.962 50.7246C247.963 50.7246 247.964 50.7246 247.965 50.7246C247.967 50.7246 247.968 50.7246 247.969 50.7246C247.97 50.7246 247.971 50.7246 247.972 50.7246C247.974 50.7246 247.975 50.7246 247.976 50.7246C247.977 50.7246 247.978 50.7246 247.979 50.7246C247.981 50.7246 247.982 50.7246 247.983 50.7246C247.984 50.7246 247.985 50.7246 247.986 50.7246C247.988 50.7246 247.989 50.7246 247.99 50.7246C247.991 50.7246 247.992 50.7246 247.993 50.7246C247.995 50.7246 247.996 50.7246 247.997 50.7246C247.998 50.7246 247.999 50.7246 248 50.7246C248.002 50.7246 248.003 50.7246 248.004 50.7246C248.005 50.7246 248.006 50.7246 248.008 50.7246C248.009 50.7246 248.01 50.7246 248.011 50.7246C248.012 50.7246 248.013 50.7246 248.015 50.7246C248.016 50.7246 248.017 50.7246 248.018 50.7246C248.019 50.7246 248.02 50.7246 248.022 50.7246C248.023 50.7246 248.024 50.7246 248.025 50.7246C248.026 50.7246 248.027 50.7246 248.029 50.7246C248.03 50.7246 248.031 50.7246 248.032 50.7246C248.033 50.7246 248.034 50.7246 248.036 50.7246C248.037 50.7246 248.038 50.7246 248.039 50.7246C248.04 50.7246 248.042 50.7246 248.043 50.7246C248.044 50.7246 248.045 50.7246 248.046 50.7246C248.047 50.7246 248.049 50.7246 248.05 50.7246C248.051 50.7246 248.052 50.7246 248.053 50.7246C248.054 50.7246 248.056 50.7246 248.057 50.7246C248.058 50.7246 248.059 50.7246 248.06 50.7246C248.061 50.7246 248.063 50.7246 248.064 50.7246C248.065 50.7246 248.066 50.7246 248.067 50.7246C248.068 50.7246 248.07 50.7246 248.071 50.7246C248.072 50.7246 248.073 50.7246 248.074 50.7246C248.075 50.7246 248.077 50.7246 248.078 50.7246C248.079 50.7246 248.08 50.7246 248.081 50.7246C248.083 50.7246 248.084 50.7246 248.085 50.7246C248.086 50.7246 248.087 50.7246 248.088 50.7246C248.09 50.7246 248.091 50.7246 248.092 50.7246C248.093 50.7246 248.094 50.7246 248.095 50.7246C248.097 50.7246 248.098 50.7246 248.099 50.7246C248.1 50.7246 248.101 50.7246 248.102 50.7246C248.104 50.7246 248.105 50.7246 248.106 50.7246C248.107 50.7246 248.108 50.7246 248.109 50.7246C248.111 50.7246 248.112 50.7246 248.113 50.7246C248.114 50.7246 248.115 50.7246 248.117 50.7246C248.118 50.7246 248.119 50.7246 248.12 50.7246C248.121 50.7246 248.122 50.7246 248.124 50.7246C248.125 50.7246 248.126 50.7246 248.127 50.7246C248.128 50.7246 248.129 50.7246 248.131 50.7246C248.132 50.7246 248.133 50.7246 248.134 50.7246C248.135 50.7246 248.136 50.7246 248.138 50.7246C248.139 50.7246 248.14 50.7246 248.141 50.7246C248.142 50.7246 248.143 50.7246 248.145 50.7246C248.146 50.7246 248.147 50.7246 248.148 50.7246C248.149 50.7246 248.15 50.7246 248.152 50.7246C248.153 50.7246 248.154 50.7246 248.155 50.7246C248.156 50.7246 248.158 50.7246 248.159 50.7246C248.16 50.7246 248.161 50.7246 248.162 50.7246C248.163 50.7246 248.165 50.7246 248.166 50.7246C248.167 50.7246 248.168 50.7246 248.169 50.7246C248.17 50.7246 248.172 50.7246 248.173 50.7246C248.174 50.7246 248.175 50.7246 248.176 50.7246C248.177 50.7246 248.179 50.7246 248.18 50.7246C248.181 50.7246 248.182 50.7246 248.183 50.7246C248.184 50.7246 248.186 50.7246 248.187 50.7246C248.188 50.7246 248.189 50.7246 248.19 50.7246C248.192 50.7246 248.193 50.7246 248.194 50.7246C248.195 50.7246 248.196 50.7246 248.197 50.7246C248.199 50.7246 248.2 50.7246 248.201 50.7246C248.202 50.7246 248.203 50.7246 248.204 50.7246C248.206 50.7246 248.207 50.7246 248.208 50.7246C248.209 50.7246 248.21 50.7246 248.211 50.7246C248.213 50.7246 248.214 50.7246 248.215 50.7246C248.216 50.7246 248.217 50.7246 248.218 50.7246C248.22 50.7246 248.221 50.7246 248.222 50.7246C248.223 50.7246 248.224 50.7246 248.225 50.7246C248.227 50.7246 248.228 50.7246 248.229 50.7246C248.23 50.7246 248.231 50.7246 248.233 50.7246V46.7246ZM246.433 46.7246H233.113V50.7246H246.433V46.7246ZM231.113 48.7246V69.5146H235.113V48.7246H231.113ZM233.113 67.5146H222.403V71.5146H233.113V67.5146ZM233.113 41.2746H248.953V37.2746H233.113V41.2746ZM248.953 41.2746C251.503 41.2746 253.896 40.7693 256.101 39.7356L254.404 36.1137C252.769 36.88 250.962 37.2746 248.953 37.2746V41.2746ZM256.101 39.7356C258.359 38.6773 260.16 37.1006 261.452 35.0194L258.053 32.9099C257.185 34.3087 255.986 35.372 254.404 36.1137L256.101 39.7356ZM261.442 35.0348C262.81 32.8754 263.463 30.3943 263.463 27.6646H259.463C259.463 29.735 258.975 31.4539 258.063 32.8945L261.442 35.0348ZM263.463 27.6646C263.463 24.8876 262.815 22.39 261.425 20.2686L258.08 22.4607C258.97 23.8193 259.463 25.5217 259.463 27.6646H263.463ZM261.425 20.2686C260.088 18.2277 258.312 16.6632 256.124 15.6043L254.381 19.205C255.913 19.946 257.137 21.0216 258.08 22.4607L261.425 20.2686ZM256.17 15.6274C254.001 14.5082 251.613 13.9646 249.043 13.9646V17.9646C251.032 17.9646 252.784 18.381 254.335 19.1819L256.17 15.6274ZM249.043 13.9646H233.113V17.9646H249.043V13.9646ZM231.113 15.9646V39.2746H235.113V15.9646H231.113ZM299.504 68.1646L298.71 70.0001L298.726 70.0072L298.743 70.014L299.504 68.1646ZM289.154 61.0546L287.697 62.4245L287.704 62.4321L287.712 62.4397L289.154 61.0546ZM282.584 50.6146L280.724 51.3477L280.724 51.3477L282.584 50.6146ZM282.584 25.3246L284.441 26.0674L284.445 26.0577L282.584 25.3246ZM289.154 14.8846L287.712 13.4996L287.704 13.5072L287.697 13.5148L289.154 14.8846ZM299.504 7.86464L298.743 6.01526L298.733 6.01931L299.504 7.86464ZM326.684 7.86464L327.456 6.01931L327.456 6.0193L326.684 7.86464ZM337.034 14.8846L338.477 13.4996L338.477 13.4996L337.034 14.8846ZM343.694 25.3246L341.834 26.0577L341.837 26.0674L343.694 25.3246ZM343.694 50.6146L345.555 51.3477L345.555 51.3477L343.694 50.6146ZM337.034 61.0546L338.477 62.4397L338.477 62.4397L337.034 61.0546ZM326.684 68.1646L327.456 70.01L327.467 70.0051L327.479 70.0001L326.684 68.1646ZM321.914 59.4346L321.136 57.5921L321.136 57.5921L321.914 59.4346ZM328.934 54.5746L327.48 53.2014L327.479 53.2026L328.934 54.5746ZM333.614 47.1046L331.747 46.3894L331.747 46.3894L333.614 47.1046ZM328.934 21.4546L327.479 22.8267L327.499 22.8481L327.52 22.8689L328.934 21.4546ZM321.914 16.5946L321.102 18.4223L321.119 18.4299L321.136 18.4371L321.914 16.5946ZM304.274 16.5946L305.067 18.4308L305.077 18.4266L305.087 18.4223L304.274 16.5946ZM297.254 21.4546L295.82 20.0611L295.819 20.0617L297.254 21.4546ZM292.574 28.7446L290.72 27.9951L290.713 28.0121L290.707 28.0294L292.574 28.7446ZM292.574 47.1946L290.707 47.9099L290.716 47.9342L290.726 47.9582L292.574 47.1946ZM297.254 54.5746L295.78 55.9261L295.8 55.9474L295.82 55.9682L297.254 54.5746ZM304.274 59.4346L303.482 61.2708L303.489 61.274L303.496 61.2771L304.274 59.4346ZM313.094 68.6846C308.342 68.6846 304.075 67.8838 300.266 66.3153L298.743 70.014C303.094 71.8055 307.887 72.6846 313.094 72.6846V68.6846ZM300.299 66.3292C296.51 64.689 293.283 62.4677 290.597 59.6696L287.712 62.4397C290.785 65.6415 294.459 68.1603 298.71 70.0001L300.299 66.3292ZM290.612 59.6848C287.971 56.8758 285.915 53.6138 284.445 49.8816L280.724 51.3477C282.373 55.5355 284.698 59.2335 287.697 62.4245L290.612 59.6848ZM284.445 49.8816C282.982 46.1682 282.244 42.1883 282.244 37.9246H278.244C278.244 42.661 279.066 47.1411 280.724 51.3477L284.445 49.8816ZM282.244 37.9246C282.244 33.6608 282.982 29.7148 284.441 26.0674L280.727 24.5819C279.066 28.7345 278.244 33.1885 278.244 37.9246H282.244ZM284.445 26.0577C285.915 22.3255 287.971 19.0635 290.612 16.2545L287.697 13.5148C284.698 16.7058 282.373 20.4038 280.724 24.5916L284.445 26.0577ZM290.597 16.2697C293.278 13.477 296.496 11.2894 300.276 9.70998L298.733 6.01931C294.472 7.79992 290.791 10.2923 287.712 13.4996L290.597 16.2697ZM300.266 9.714C304.075 8.14546 308.342 7.34464 313.094 7.34464V3.34464C307.887 3.34464 303.094 4.22382 298.743 6.01529L300.266 9.714ZM313.094 7.34464C317.911 7.34464 322.173 8.1468 325.913 9.70998L327.456 6.0193C323.156 4.22248 318.358 3.34464 313.094 3.34464V7.34464ZM325.913 9.70998C329.692 11.2894 332.911 13.477 335.592 16.2697L338.477 13.4996C335.398 10.2923 331.716 7.79992 327.456 6.01931L325.913 9.70998ZM335.592 16.2697C338.287 19.0772 340.367 22.3344 341.834 26.0577L345.555 24.5916C343.902 20.3949 341.542 16.6921 338.477 13.4996L335.592 16.2697ZM341.837 26.0674C343.296 29.7148 344.034 33.6608 344.034 37.9246H348.034C348.034 33.1885 347.212 28.7345 345.551 24.5819L341.837 26.0674ZM344.034 37.9246C344.034 42.1883 343.296 46.1682 341.834 49.8816L345.555 51.3477C347.212 47.1411 348.034 42.661 348.034 37.9246H344.034ZM341.834 49.8816C340.367 53.6049 338.287 56.8621 335.592 59.6696L338.477 62.4397C341.542 59.2472 343.902 55.5444 345.555 51.3477L341.834 49.8816ZM335.592 59.6696C332.905 62.4677 329.679 64.689 325.89 66.3292L327.479 70.0001C331.73 68.1603 335.403 65.6415 338.477 62.4397L335.592 59.6696ZM325.913 66.3193C322.173 67.8825 317.911 68.6846 313.094 68.6846V72.6846C318.358 72.6846 323.156 71.8068 327.456 70.01L325.913 66.3193ZM313.094 63.1446C316.519 63.1446 319.726 62.5297 322.692 61.2771L321.136 57.5921C318.703 58.6196 316.03 59.1446 313.094 59.1446V63.1446ZM322.692 61.2771C325.644 60.0308 328.216 58.252 330.39 55.9467L327.479 53.2026C325.693 55.0973 323.585 56.5585 321.136 57.5921L322.692 61.2771ZM330.388 55.9479C332.611 53.5946 334.31 50.8801 335.482 47.8199L331.747 46.3894C330.759 48.9692 329.338 51.2347 327.48 53.2014L330.388 55.9479ZM335.482 47.8199C336.657 44.7513 337.234 41.4464 337.234 37.9246H333.234C333.234 41.0029 332.731 43.818 331.747 46.3894L335.482 47.8199ZM337.234 37.9246C337.234 34.4029 336.657 31.098 335.482 28.0294L331.747 29.4599C332.731 32.0313 333.234 34.8464 333.234 37.9246H337.234ZM335.482 28.0294C334.306 24.9596 332.596 22.2883 330.349 20.0404L327.52 22.8689C329.352 24.701 330.762 26.8897 331.747 29.4599L335.482 28.0294ZM330.39 20.0826C328.216 17.7773 325.644 15.9985 322.692 14.7521L321.136 18.4371C323.585 19.4708 325.693 20.932 327.479 22.8267L330.39 20.0826ZM322.727 14.767C319.752 13.4449 316.533 12.7946 313.094 12.7946V16.7946C316.016 16.7946 318.677 17.3444 321.102 18.4223L322.727 14.767ZM313.094 12.7946C309.656 12.7946 306.437 13.4449 303.462 14.767L305.087 18.4223C307.512 17.3444 310.173 16.7946 313.094 16.7946V12.7946ZM303.482 14.7585C300.596 16.0044 298.039 17.7764 295.82 20.0611L298.689 22.8482C300.55 20.9329 302.673 19.4649 305.067 18.4308L303.482 14.7585ZM295.819 20.0617C293.647 22.2997 291.95 24.9525 290.72 27.9951L294.429 29.4942C295.479 26.8968 296.902 24.6896 298.69 22.8476L295.819 20.0617ZM290.707 28.0294C289.531 31.098 288.954 34.4029 288.954 37.9246H292.954C292.954 34.8464 293.457 32.0313 294.442 29.4599L290.707 28.0294ZM288.954 37.9246C288.954 41.5017 289.53 44.8373 290.707 47.9099L294.442 46.4794C293.459 43.912 292.954 41.0676 292.954 37.9246H288.954ZM290.726 47.9582C291.954 50.9303 293.639 53.5902 295.78 55.9261L298.729 53.2232C296.91 51.2391 295.475 48.979 294.423 46.4311L290.726 47.9582ZM295.82 55.9682C298.039 58.2529 300.596 60.0249 303.482 61.2708L305.067 57.5985C302.673 56.5644 300.55 55.0964 298.689 53.1811L295.82 55.9682ZM303.496 61.2771C306.463 62.5297 309.67 63.1446 313.094 63.1446V59.1446C310.159 59.1446 307.486 58.6196 305.052 57.5921L303.496 61.2771Z\"\n fill=\"black\"\n mask=\"url(#path-5-outside-1_5927_1148)\"\n />\n <defs>\n <linearGradient id=\"paint0_linear_5927_1148\" x1=\"336.394\" y1=\"25.6959\" x2=\"459.327\" y2=\"25.4778\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0729167\" stopColor=\"#FF0F16\" />\n <stop offset=\"0.234375\" stopColor=\"#FF8224\" />\n <stop offset=\"0.390625\" stopColor=\"#FFD036\" />\n <stop offset=\"0.513869\" stopColor=\"#2DFF68\" />\n <stop offset=\"0.690271\" stopColor=\"#1FACFC\" />\n <stop offset=\"0.75\" stopColor=\"#602BB7\" />\n <stop offset=\"0.947917\" stopColor=\"#B200CF\" />\n </linearGradient>\n </defs>\n </svg>\n );\n } else if (name.toLowerCase() === \"channelone\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 600 600\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <g clipPath=\"url(#clip0_287_202)\">\n <path\n d=\"M300.4 600.401C466.086 600.401 600.4 466.086 600.4 300.4C600.4 134.715 466.086 0.400391 300.4 0.400391C134.715 0.400391 0.400146 134.715 0.400146 300.4C0.400146 466.086 134.715 600.401 300.4 600.401Z\"\n fill=\"#00387E\"\n />\n <path\n d=\"M300.4 560.4C443.994 560.4 560.4 443.994 560.4 300.4C560.4 156.806 443.994 40.4004 300.4 40.4004C156.806 40.4004 40.4001 156.806 40.4001 300.4C40.4001 443.994 156.806 560.4 300.4 560.4Z\"\n fill=\"white\"\n />\n <path d=\"M202.274 228.819L408.65 158.941L341.382 405.835L262.977 427.797L319.147 222.92L192.15 266.089L202.274 228.819Z\" fill=\"#00387E\" />\n <path d=\"M302.482 239.595L250.236 431.461L210.531 442.401L263.027 252.954L302.482 239.595Z\" fill=\"#00387E\" />\n </g>\n <defs>\n <clipPath id=\"clip0_287_202\">\n <rect width=\"600.8\" height=\"600.8\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n } else if (name.toLowerCase() === \"swarm\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 281 281\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <circle cx=\"140.5\" cy=\"140.5\" r=\"140.5\" fill=\"#13151F\" />\n <path\n opacity=\"0.85\"\n d=\"M210.863 132.591L213.939 84.5431L176.919 61.157C178.428 58.3441 177.513 54.8376 174.682 53.0493C171.642 51.1286 167.546 51.9187 165.534 54.8141C164.333 56.543 164.154 58.6269 164.843 60.4367L125.887 78.9108L83.7613 52.2989L37.7866 74.1012L35.0759 116.446C33.1228 116.592 31.261 117.56 30.0968 119.235C28.085 122.131 28.9188 126.034 31.9592 127.955C34.79 129.744 38.5333 129.18 40.6618 126.759L76.7897 149.581L73.7134 197.63L116.56 224.697L161.765 203.262L203.894 229.876L249.869 208.073L253 159.206L210.87 132.592L210.863 132.591ZM165.506 61.7133C165.985 62.4168 166.617 63.0422 167.4 63.5364C170.23 65.3247 173.974 64.7608 176.102 62.3395L212.404 85.2724L209.378 132.503L183.955 144.559L164.944 153.575L123.535 127.416L126.561 80.1854L165.514 61.7142L165.506 61.7133ZM39.2212 75.0075L83.6562 53.9355L125.068 80.0961L122.042 127.327L99.8236 137.864L77.6054 148.401L41.4772 125.579C42.9858 122.766 42.0709 119.259 39.24 117.471C38.4047 116.943 37.4896 116.628 36.5624 116.495L39.2212 75.0075ZM116.658 223.059L75.2454 196.899L78.2712 149.668L100.49 139.13L122.708 128.593L164.117 154.752L161.925 188.971L161.091 201.982L116.656 223.055L116.658 223.059ZM203.988 228.236L162.577 202.076L163.336 190.206L165.599 154.843L183.974 146.128L210.034 133.771L251.446 159.932L248.421 207.163L203.986 228.235L203.988 228.236Z\"\n fill=\"url(#paint0_linear_1203_6286)\"\n />\n <g filter=\"url(#filter0_d_1203_6286)\">\n <g filter=\"url(#filter1_d_1203_6286)\">\n <path\n d=\"M151.676 156.954V158.991C151.676 160.123 151.511 161.198 151.182 162.218C150.963 163.237 150.031 163.747 148.386 163.747H92.4612C92.1322 163.747 91.1453 164.765 89.5005 166.802C87.8555 168.727 86.0463 170.991 84.0724 173.595C82.2083 176.085 80.3989 178.576 78.6445 181.067C76.9995 183.557 75.903 185.368 75.3547 186.5H159.242C162.203 186.5 165.054 185.595 167.795 183.784C170.646 181.859 173.114 179.481 175.197 176.652C177.391 173.821 179.145 170.765 180.46 167.482C181.777 164.086 182.435 160.916 182.435 157.972V156.954C182.435 154.35 182.051 151.519 181.283 148.464C180.515 145.407 179.309 142.576 177.664 139.972C176.129 137.256 174.101 135.048 171.579 133.35C169.057 131.538 166.041 130.632 162.532 130.632H131.28C131.17 130.632 130.676 130.463 129.8 130.124C129.032 129.671 128.428 129.217 127.99 128.764C127.77 128.764 127.661 128.652 127.661 128.425H94.9284C95.1477 131.256 95.8057 134.142 96.9023 137.086C97.9988 139.916 99.4792 142.52 101.343 144.897C103.207 147.161 105.4 149.029 107.922 150.501C110.444 151.972 113.295 152.708 116.476 152.708H149.372C150.25 152.708 150.853 153.218 151.182 154.236C151.511 155.143 151.676 156.048 151.676 156.954ZM204.476 96.5007H120.588C118.066 96.5007 115.544 97.2365 113.022 98.7082C110.61 100.067 108.306 101.879 106.113 104.143C103.92 106.294 101.947 108.727 100.192 111.444C98.5471 114.162 97.2312 116.822 96.2443 119.426H185.231C189.068 115.69 192.578 111.897 195.758 108.048C199.048 104.198 201.954 100.35 204.476 96.5007Z\"\n fill=\"white\"\n />\n </g>\n </g>\n <defs>\n <filter id=\"filter0_d_1203_6286\" x=\"71.7954\" y=\"96.5007\" width=\"136.24\" height=\"97.1179\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"3.5593\" />\n <feGaussianBlur stdDeviation=\"1.77966\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1203_6286\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1203_6286\" result=\"shape\" />\n </filter>\n <filter id=\"filter1_d_1203_6286\" x=\"71.7954\" y=\"96.5007\" width=\"136.24\" height=\"97.1179\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"3.5593\" />\n <feGaussianBlur stdDeviation=\"1.77966\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1203_6286\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1203_6286\" result=\"shape\" />\n </filter>\n <linearGradient id=\"paint0_linear_1203_6286\" x1=\"39.4003\" y1=\"71.7789\" x2=\"245.508\" y2=\"214.994\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#EE2A7B\" />\n <stop offset=\"0.14\" stopColor=\"#ED1C24\" />\n <stop offset=\"0.28\" stopColor=\"#EFA13F\" />\n <stop offset=\"0.42\" stopColor=\"#FFE62B\" />\n <stop offset=\"0.44\" stopColor=\"#D8DE33\" />\n <stop offset=\"0.52\" stopColor=\"#43BF54\" />\n <stop offset=\"0.56\" stopColor=\"#07B261\" />\n <stop offset=\"0.63\" stopColor=\"#03B0A8\" />\n <stop offset=\"0.7\" stopColor=\"#00AEEF\" />\n <stop offset=\"0.71\" stopColor=\"#05A7EA\" />\n <stop offset=\"0.77\" stopColor=\"#3966BA\" />\n <stop offset=\"0.82\" stopColor=\"#5A3D9C\" />\n <stop offset=\"0.84\" stopColor=\"#662D91\" />\n <stop offset=\"1\" stopColor=\"#213569\" />\n </linearGradient>\n </defs>\n </svg>\n );\n } else if (name.toLowerCase() === \"wavelengthw\") {\n logo = (\n <svg width={width} height={height} viewBox=\"0 0 829 515\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" filter={arg} id={id}>\n <mask id=\"mask0_164_43\" style={{ maskType: \"alpha\" }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"830\" height=\"515\">\n <path\n d=\"M0 15C236.857 15 62.034 499.993 236.857 499.993C411.68 499.993 270.694 15 445.517 15C620.34 15 484.993 499.993 631.619 499.993C778.245 499.993 625.98 15.0024 829 15\"\n stroke=\"black\"\n strokeWidth=\"30\"\n />\n </mask>\n <g mask=\"url(#mask0_164_43)\">\n <rect x=\"-33.8369\" y=\"-63.9557\" width=\"924.871\" height=\"631.619\" fill=\"url(#paint0_linear_164_43)\" />\n </g>\n <defs>\n <linearGradient id=\"paint0_linear_164_43\" x1=\"-33.8369\" y1=\"166.53\" x2=\"891.035\" y2=\"164.909\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0729167\" stopColor=\"#FF0F16\" />\n <stop offset=\"0.234375\" stopColor=\"#FF8224\" />\n <stop offset=\"0.390625\" stopColor=\"#FFD036\" />\n <stop offset=\"0.513869\" stopColor=\"#2DFF68\" />\n <stop offset=\"0.690271\" stopColor=\"#1FACFC\" />\n <stop offset=\"0.75\" stopColor=\"#602BB7\" />\n <stop offset=\"0.947917\" stopColor=\"#B200CF\" />\n </linearGradient>\n </defs>\n </svg>\n );\n } else {\n logo = (\n <>\n AIR <br /> FORCE\n </>\n );\n }\n return <div>{logo}</div>;\n}\n/* eslint-ignore */\n\nWavelengthAppLogo.displayName = \"WavelengthAppLogo\";\n\nexport default WavelengthAppLogo;\n","import React from \"react\";\nimport WavelengthAppLogo from \"../logos/applogo/WavelengthAppLogo\";\nimport { WavelengthButton } from \"../buttons/WavelengthButton/WavelengthButton\";\n\ninterface WavelengthNotAvailablePageProps {\n WavelengthAppLogoName?: string;\n errorMessage: string;\n backgroundColor?: string;\n buttonText: string;\n redirectLink?: string;\n buttonColorOne?: string;\n buttonColorTwo?: string;\n id?: string;\n}\n\nexport function WavelengthNotAvailablePage({ WavelengthAppLogoName, errorMessage, backgroundColor, buttonText, redirectLink, buttonColorOne, buttonColorTwo, id }: WavelengthNotAvailablePageProps) {\n backgroundColor = backgroundColor ? backgroundColor : \"gray\";\n WavelengthAppLogoName = WavelengthAppLogoName ? WavelengthAppLogoName : \"563rdpatch\";\n buttonColorOne = buttonColorOne ? buttonColorOne : \"white\";\n buttonColorTwo = buttonColorTwo ? buttonColorTwo : \"#0D5288\";\n\n return (\n <>\n <div id={id} style={{ display: \"flex\", backgroundColor: backgroundColor, flexDirection: \"column\", alignItems: \"center\", height: \"100%\", justifyContent: \"center\", gap: 55, padding: \"8%\" }}>\n <WavelengthAppLogo name={WavelengthAppLogoName} width={300} height={200} grayscale></WavelengthAppLogo>\n\n <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\" }}>\n <p style={{ textAlign: \"center\", marginBottom: 45, fontSize: 40, color: \"white\" }}>{`${errorMessage}`}</p>\n <WavelengthButton data-testid=\"not-available-button\" variant=\"contained\" colorOne={buttonColorOne} colorTwo={buttonColorTwo} href={redirectLink}>\n {buttonText}\n </WavelengthButton>\n </div>\n </div>\n </>\n );\n}\n\nWavelengthNotAvailablePage.displayName = \"WavelengthNotAvailablePage\";\n\nexport default WavelengthNotAvailablePage;\n","import React, { useState } from \"react\";\n\nimport { getPalette } from \"../../themes/Palette\";\nimport { useNavigate } from \"react-router-dom\";\nimport { KeyboardArrowDownRounded, KeyboardArrowRightRounded } from \"@mui/icons-material\";\nimport ListItem from \"@mui/material/ListItem\";\nimport Typography from \"@mui/material/Typography\";\nimport Collapse from \"@mui/material/Collapse\";\nimport List from \"@mui/material/List\";\nimport Box from \"@mui/material/Box\";\n\ninterface SubSectionItem {\n title?: string;\n path?: string;\n onClick?: () => void;\n items?: SubSectionItem[];\n}\n\ninterface SubSection {\n title?: string;\n items?: SubSectionItem[];\n}\n\ninterface Section {\n title: string;\n subsections?: SubSection[];\n}\n\ninterface SidebarProps {\n id?: string;\n sections: Section[];\n bgColor?: string;\n txtColor?: string;\n labelColor?: string;\n arrowColor?: string;\n marginTop?: string;\n marginLeft?: string;\n width?: string | number;\n height?: string | number;\n}\n\nexport function WavelengthSideBar({ sections, txtColor, bgColor, labelColor, arrowColor, marginTop, marginLeft, width = 240, height = 300, id }: SidebarProps): React.JSX.Element {\n const [openSections, setOpenSections] = useState<{ [key: string]: boolean }>({});\n\n const navigate = useNavigate();\n\n const palette = getPalette();\n\n function handleToggle(sectionTitle: string) {\n setOpenSections((prevState) => ({\n ...prevState,\n [sectionTitle]: !prevState[sectionTitle],\n }));\n }\n\n return (\n <div\n id={id}\n style={{\n width: width,\n minHeight: 300,\n height: height,\n maxHeight: 737,\n overflow: \"hidden\",\n overflowY: \"scroll\",\n backgroundColor: bgColor ? bgColor : palette.primary,\n marginBottom: 5,\n marginTop: marginTop,\n marginLeft: marginLeft,\n borderRadius: \"12px\",\n position: \"relative\",\n }}\n >\n <List component=\"nav\">\n {sections.map((section, index) => (\n <React.Fragment key={index}>\n {/* Main Section List Item */}\n <ListItem button onClick={() => handleToggle(section.title)} sx={{ flexDirection: \"row\", alignItems: \"center\", paddingX: 0.75, paddingY: 0.5 }}>\n {openSections[section.title] ? (\n <KeyboardArrowDownRounded sx={{ color: arrowColor ? arrowColor : palette.secondary }} />\n ) : (\n <KeyboardArrowRightRounded sx={{ color: arrowColor ? arrowColor : palette.secondary }} />\n )}\n <Typography variant=\"h6\" sx={{ fontSize: 16, color: txtColor ? txtColor : palette.secondary }}>\n {section.title}\n </Typography>\n </ListItem>\n\n {/* Collapsible Subsections */}\n {section.subsections?.length && (\n <Collapse in={openSections[section.title]} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding sx={{ paddingLeft: 4 }}>\n {section.subsections.map((subsection, subIndex) => (\n <React.Fragment key={subIndex}>\n {/* Subsection Header (Unclickable) */}\n <Typography\n variant=\"subtitle2\"\n sx={{\n fontSize: 12,\n marginTop: 1,\n paddingLeft: 0.75,\n color: labelColor ? labelColor : palette.secondary,\n }}\n >\n {subsection.title?.toUpperCase()}\n </Typography>\n\n {/* Clickable List Items under the subsection */}\n {subsection.items &&\n subsection.items.map((item, itemIndex) => (\n <ListItem\n key={itemIndex}\n button\n onClick={item.path ? () => navigate(item.path as string) : item.onClick}\n sx={{ color: txtColor ? txtColor : palette.secondary, paddingLeft: 4, paddingX: 0.75, paddingY: 0.25 }}\n >\n <Typography variant=\"body2\" sx={{ fontSize: 16 }}>\n {item.title}\n </Typography>\n </ListItem>\n ))}\n </React.Fragment>\n ))}\n </List>\n </Collapse>\n )}\n </React.Fragment>\n ))}\n </List>\n </div>\n );\n}\n\nWavelengthSideBar.displayName = \"WavelengthSideBar\";\n\nexport default WavelengthSideBar;\n","interface ISpinningSvgProps {\n size: number;\n id: \"outer-circle\" | \"middle-circle\" | \"inner-circle\" | \"spinning\";\n clip: string;\n color: string;\n gradient: boolean;\n radius: number;\n}\n\nexport function WavelengthSpinningOuterCircle({ size, id, clip, color, gradient, radius }: ISpinningSvgProps) {\n const clip_path: any = {\n third: (\n <clipPath id=\"clipThird\">\n <rect x=\"0%\" y=\"0%\" width=\"60%\" height=\"50%\" />\n </clipPath>\n ),\n };\n\n let svg_color = <></>;\n if (gradient && color === \"blue\") {\n svg_color = (\n <linearGradient id={`${id}-color`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" style={{ stopColor: \"#24AEDF\", stopOpacity: 1 }} />\n <stop offset=\"33.3%\" style={{ stopColor: \"#297BC9\", stopOpacity: 1 }} />\n <stop offset=\"66.6%\" style={{ stopColor: \"#435AB1\", stopOpacity: 1 }} />\n <stop offset=\"100%\" style={{ stopColor: \"#435AB1\", stopOpacity: 1 }} />\n </linearGradient>\n );\n } else if (gradient && color === \"red\") {\n svg_color = (\n <linearGradient id={`${id}-color`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" style={{ stopColor: \"#ED243A\", stopOpacity: 1 }} />\n <stop offset=\"33.3%\" style={{ stopColor: \"#ED2A27\", stopOpacity: 1 }} />\n <stop offset=\"66.6%\" style={{ stopColor: \"#EE522F\", stopOpacity: 1 }} />\n <stop offset=\"100%\" style={{ stopColor: \"#EE522F\", stopOpacity: 1 }} />\n </linearGradient>\n );\n } else if (gradient && color === \"yellow\") {\n svg_color = (\n <linearGradient id={`${id}-color`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" style={{ stopColor: \"#F0A63E\", stopOpacity: 1 }} />\n <stop offset=\"33.3%\" style={{ stopColor: \"#FEE42C\", stopOpacity: 1 }} />\n <stop offset=\"66.6%\" style={{ stopColor: \"#F8E52C\", stopOpacity: 1 }} />\n <stop offset=\"100%\" style={{ stopColor: \"#F8E52C\", stopOpacity: 1 }} />\n </linearGradient>\n );\n }\n\n return (\n <div\n id={`${id}`}\n style={{\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n position: \"absolute\",\n }}\n >\n <svg width={size} height={size} viewBox=\"0 0 100 100\">\n <defs>\n {clip_path[clip]}\n {svg_color}\n </defs>\n <circle cx=\"50\" cy=\"50\" r={radius} stroke={`url(#${id}-color)`} strokeWidth=\"2\" fill=\"none\" clipPath=\"url(#clipThird)\" />\n </svg>\n </div>\n );\n}\n\nWavelengthSpinningOuterCircle.displayName = \"WavelengthSpinningOuterCircle\";\n\nexport default WavelengthSpinningOuterCircle;\n","import React from \"react\";\nimport WavelengthSpinningOuterCircle from \"./WavelengthSpinningLogo\";\ninterface spinningLogoProps {\n svg?: React.ReactNode;\n size?: number;\n id?: string;\n}\n\nexport function WavelengthSpinningLogo({ svg = <span>SVG Goes Here</span>, size = 200, id = \"loading\" }: spinningLogoProps) {\n const loadingSymbol = (\n <>\n <div\n id={id}\n style={{\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n position: \"relative\",\n }}\n >\n <div\n id=\"wavelength-logo\"\n style={{\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n display: \"block\",\n position: \"absolute\",\n textAlign: \"center\",\n alignContent: \"center\",\n }}\n >\n {svg}\n {/* <svg width=\"61\" height=\"40\" viewBox=\"0 0 61 47\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M60.9828 2.08828C60.9759 1.97531 60.969 1.86234 60.969 1.74594V0L59.2177 0.0308107C51.8409 0.1609 51.1803 11.5403 50.4784 23.5873C50.1928 28.5649 49.8969 33.7103 49.0918 37.5137C48.6823 39.4445 47.7637 42.6831 46.1947 42.6831H46.1878C44.7015 42.6831 43.8378 39.5644 43.4559 37.7054C42.699 34.0253 42.4375 28.9894 42.1863 24.1179L42.176 23.9057C41.5498 12.1873 40.9064 0.0650448 33.1339 0.0650448C25.3613 0.0650448 24.3498 11.352 23.0974 23.2997V23.3374C22.2165 31.5022 21.0192 42.6865 17.3755 42.6865C13.7318 42.6865 12.5344 31.5022 11.6571 23.3374V23.3032C10.4012 11.4205 9.21761 0.195134 1.75131 0.0650448L0 0.0342341V4.2998L1.67562 4.34431C5.26426 4.44016 6.4513 15.4772 7.31835 23.5359L7.33899 23.7277C8.5914 35.6788 9.775 46.9658 17.3755 46.9658C24.976 46.9658 26.1596 35.6788 27.412 23.7311L27.4361 23.4983C28.3031 15.4156 29.4902 4.34431 33.1339 4.34431C36.7775 4.34431 37.4141 15.8333 37.851 24.2172C38.1194 29.5475 38.3981 35.0557 39.3443 39.1741C39.7881 41.1083 41.1438 47 46.2429 47C53.4752 47 54.1393 35.7404 54.8412 23.8235L54.8481 23.6832C55.3091 15.9908 56.0041 4.36485 59.2934 4.34431L61 4.33404V2.6326C61 2.44432 60.9897 2.2663 60.9794 2.08486L60.9828 2.08828Z\"\n fill=\"url(#paint0_linear_167_3046)\"\n ></path>\n <defs>\n <linearGradient\n id=\"paint0_linear_167_3046\"\n x1=\"0\"\n y1=\"23.5017\"\n x2=\"61.0895\"\n y2=\"23.5017\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#EE2A7B\"></stop>\n <stop offset=\"0.14\" stopColor=\"#ED1C24\"></stop>\n <stop offset=\"0.28\" stopColor=\"#EFA13F\"></stop>\n <stop offset=\"0.42\" stopColor=\"#FFE62B\"></stop>\n <stop offset=\"0.44\" stopColor=\"#D8DE33\"></stop>\n <stop offset=\"0.52\" stopColor=\"#43BF54\"></stop>\n <stop offset=\"0.56\" stopColor=\"#07B261\"></stop>\n <stop offset=\"0.63\" stopColor=\"#03B0A8\"></stop>\n <stop offset=\"0.7\" stopColor=\"#00AEEF\"></stop>\n <stop offset=\"0.71\" stopColor=\"#05A7EA\"></stop>\n <stop offset=\"0.77\" stopColor=\"#3966BA\"></stop>\n <stop offset=\"0.82\" stopColor=\"#5A3D9C\"></stop>\n <stop offset=\"0.84\" stopColor=\"#662D91\"></stop>\n <stop offset=\"1\" stopColor=\"#213569\"></stop>\n </linearGradient>\n </defs>\n </svg> */}\n </div>\n\n <WavelengthSpinningOuterCircle size={size} id={\"inner-circle\"} clip={\"third\"} color={\"yellow\"} gradient={true} radius={20} />\n <WavelengthSpinningOuterCircle size={size} id={\"middle-circle\"} clip={\"third\"} color={\"red\"} gradient={true} radius={30} />\n <WavelengthSpinningOuterCircle size={size} id={\"outer-circle\"} clip={\"third\"} color={\"blue\"} gradient={true} radius={40} />\n </div>\n </>\n );\n return loadingSymbol;\n}\n\nWavelengthSpinningLogo.displayName = \"WavelengthSpinningLogo\";\n\nexport default WavelengthSpinningLogo;\n","import { useEffect, useState } from \"react\";\nimport Close from \"@mui/icons-material/Close\";\nimport { IconButton } from \"@mui/material\";\n\ninterface DragAndDropProps {\n width?: string;\n height?: string;\n border?: string;\n onFilesSelected: (files: File[]) => void;\n textColor?: string;\n fontSize?: string;\n allowedFileMIME?: string[];\n allowedFileExtensions?: string;\n backgroundColor?: string;\n dataTestId?: string;\n}\nexport function WavelengthDragAndDrop({\n width = \"550px\",\n height = \"230px\",\n onFilesSelected,\n border,\n textColor,\n fontSize = \"12px\",\n allowedFileMIME,\n allowedFileExtensions,\n backgroundColor = \"transparent\",\n dataTestId,\n}: DragAndDropProps) {\n // const [files, setFiles] = useState<File[]>([]);\n\n const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const selectedFiles = event.target.files;\n if (selectedFiles && selectedFiles.length > 0) {\n const newFiles = Array.from(selectedFiles);\n onFilesSelected(newFiles);\n }\n };\n\n const handleDrop = (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n const droppedFiles = event.dataTransfer.files;\n\n if (droppedFiles.length > 0) {\n const newFiles = Array.from(droppedFiles);\n\n // If allowedFileMIME is provided, use it; otherwise, allow all files.\n const allowedTypes = allowedFileMIME ? allowedFileMIME : \"*/*\"; // Using wildcard for all file types\n\n // Check for valid files based on the allowed MIME types.\n const validFiles = newFiles.filter((file) => allowedTypes === \"*/*\" || allowedTypes.includes(file.type));\n\n if (validFiles.length > 0) {\n // If there are valid files, append them to the state\n onFilesSelected(validFiles);\n } else {\n // Optionally, show an error message or notification if the files are not valid\n alert(`Invalid file type`);\n }\n }\n };\n\n return (\n <div\n data-testid={dataTestId}\n style={{\n backgroundColor: backgroundColor,\n border: border ? border : \"1px dashed rgba(14, 178, 178, 1)\",\n borderRadius: \"8px\",\n paddingTop: \"10px\",\n boxSizing: \"border-box\",\n width: width,\n height: height,\n cursor: \"pointer\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"scroll\",\n }}\n onDrop={handleDrop}\n onDragOver={(event) => event.preventDefault()}\n >\n <div style={{ fontSize: fontSize, color: textColor }}>\n <input type=\"file\" hidden multiple id=\"browse\" onChange={handleFileChange} accept={allowedFileExtensions} />\n Drag File here or{\" \"}\n <label htmlFor=\"browse\" style={{ textDecoration: \"underline\", cursor: \"pointer\" }}>\n select from files\n </label>\n </div>\n </div>\n );\n}\n\nWavelengthDragAndDrop.displayName = \"WavelengthDragAndDrop\";\n\nexport default WavelengthDragAndDrop;\n","import React, { useRef, useEffect } from \"react\";\nimport \"../../web-components/wavelength-progress-bar\";\n\nexport interface WavelengthProgressBarProps extends React.HTMLAttributes<HTMLElement> {\n name?: string;\n value?: number;\n width?: string;\n height?: string;\n fontSize?: string;\n fontColor?: string;\n progressBorder?: string;\n progressColor?: string;\n}\n\nexport const WavelengthProgressBar: React.FC<WavelengthProgressBarProps> = ({ name, value, width, height, fontSize, fontColor, progressBorder, progressColor, ...rest }) => {\n const ref = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n if (name !== undefined) ref.current.setAttribute(\"name\", name);\n if (value !== undefined) ref.current.setAttribute(\"value\", value.toString());\n if (width !== undefined) ref.current.setAttribute(\"width\", width);\n if (height !== undefined) ref.current.setAttribute(\"height\", height);\n if (fontSize !== undefined) ref.current.setAttribute(\"font-size\", fontSize);\n if (fontColor !== undefined) ref.current.setAttribute(\"font-color\", fontColor);\n if (progressBorder !== undefined) ref.current.setAttribute(\"progress-border\", progressBorder);\n if (progressColor !== undefined) ref.current.setAttribute(\"progress-color\", progressColor);\n }\n }, [name, value, width, height, fontSize, fontColor, progressBorder, progressColor]);\n\n return <wavelength-progress-bar ref={ref} {...rest} />;\n};\n\nWavelengthProgressBar.displayName = \"WavelengthProgressBar\";\n\nexport default WavelengthProgressBar;\n","import React, { useState } from \"react\";\nimport CheckCircleOutlineIcon from \"@mui/icons-material/CheckCircleOutline\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport { IconButton } from \"@mui/material\";\ninterface CommentProps {\n width?: string;\n height?: string;\n author: string;\n date: string;\n comments: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;\n textColor?: string;\n backgroundColor?: string;\n border?: string;\n iconSelectedColor?: string;\n dataTestId?: string;\n}\nexport function WavelengthCommentDisplay(props: CommentProps) {\n const [selected, setSelected] = useState(false);\n return (\n <div\n data-testid={props.dataTestId}\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n width: props.width || \"332px\",\n minHeight: \"fit\",\n height: props.height || \"fit-content\",\n backgroundColor: props.backgroundColor || \"rgba(250, 242, 236, 1)\",\n border: props.border || \"1px solid rgba(0, 0, 0, 0.05)\",\n borderRadius: \"6px\",\n padding: \"12px\",\n color: props.textColor || \"black\",\n }}\n >\n <div style={{ fontSize: \"14px\", fontWeight: 600, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\", alignItems: \"center\", padding: 0 }}>\n {props.author}\n {!selected && (\n <IconButton\n onClick={(e) => {\n setSelected(!selected);\n props.onClick?.(e); // ✅ Call the handler if it exists\n }}\n style={{ padding: \"0px\" }}\n >\n <CheckCircleOutlineIcon fontSize=\"small\" />\n </IconButton>\n )}\n {selected && (\n <IconButton\n onClick={(e) => {\n setSelected(!selected);\n props.onClick?.(e);\n }}\n style={{ padding: \"0px\" }}\n >\n <CheckCircleIcon fontSize=\"small\" sx={{ color: props.iconSelectedColor || \"rgba(209, 106, 47, 1)\" }} />\n </IconButton>\n )}\n </div>\n <label style={{ fontSize: \"12px\", fontWeight: 400, opacity: 0.6 }}>{props.date}</label>\n <div style={{ fontSize: \"14px\", fontWeight: 400, marginTop: \"8px\" }}>{props.comments}</div>\n </div>\n );\n}\n\nWavelengthCommentDisplay.displayName = \"WavelengthCommentDisplay\";\n\nexport default WavelengthCommentDisplay;\n","import React from \"react\";\n\ninterface PermissionAlertProps {\n height?: string;\n width?: string;\n permission?: \"Permission Requested\" | \"Permission Denied\";\n applicationName?: string;\n requestorName?: string;\n dateOfRequest?: string;\n backgroundColor?: string;\n unit?: string;\n onDismiss?: React.MouseEventHandler<HTMLAnchorElement> | undefined;\n dataTestId?: string;\n}\n\nexport function WavelengthPermissionAlert({\n dataTestId,\n height = \"112px\",\n width = \"314px\",\n backgroundColor = \"white\",\n permission,\n applicationName,\n requestorName,\n dateOfRequest,\n onDismiss,\n unit = \"No Unit\",\n}: PermissionAlertProps) {\n return (\n <>\n <div\n data-testid={dataTestId}\n style={{\n width: width,\n height: height,\n backgroundColor: backgroundColor,\n border: \"1px solid #5F5F5F\",\n borderRadius: \"12px\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: \"8px 12px\",\n gap: \"8px\",\n fontSize: \"14px\",\n fontWeight: 400,\n boxSizing: \"border-box\",\n fontFamily: \"roboto\",\n }}\n >\n <div style={{ fontSize: \"20px\", fontWeight: 400 }}>{permission}</div>\n <div style={{ letterSpacing: \"-6%\" }}>\n Application: <span style={{ fontWeight: 600, marginLeft: \"4px\" }}>{applicationName}</span>\n </div>\n <div style={{ letterSpacing: \"-6%\" }}>\n Requestor:{\" \"}\n <span style={{ fontWeight: 600, marginLeft: \"4px\" }}>\n {requestorName}, {\"\" + unit}\n </span>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <div style={{ letterSpacing: \"-6%\" }}>\n Date of Request: <span style={{ fontWeight: 600, marginLeft: \"4px\" }}>{dateOfRequest}</span>\n </div>{\" \"}\n <a href=\"\" style={{ color: \"black\", fontWeight: 600 }} onClick={onDismiss}>\n Dismiss\n </a>{\" \"}\n </div>\n </div>\n </>\n );\n}\n\nWavelengthPermissionAlert.displayName = \"WavelengthPermissionAlert\";\n\nexport default WavelengthPermissionAlert;\n","import React from \"react\";\nimport WavelengthAppLogo from \"../logos/applogo/WavelengthAppLogo\";\nimport WavelengthStyledButton from \"../buttons/WavelengthButton/WavelengthStyledButton\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport NotInterestedIcon from \"@mui/icons-material/NotInterested\";\n\ninterface AccessAlertProps {\n height?: string;\n width?: string;\n access?: \"Access Request\" | \"Access Granted\" | \"Access Denied\";\n appAdmin?: string;\n time?: string;\n requestorName?: string;\n appNickname?: string;\n message?: string;\n appLogo?: string;\n dataTestId?: string;\n\n backgroundColor?: string;\n\n onClear?: React.MouseEventHandler<HTMLAnchorElement> | undefined;\n}\nexport function WavelengthAccessAlert({\n height = \"100px\",\n dataTestId,\n width = \"244px\",\n time = \"2m ago\",\n access = \"Access Request\",\n appNickname = \"App Nickname\",\n appLogo = \"wings\",\n appAdmin = \"app.admin.1\",\n requestorName = \"joes.user.1\",\n}: AccessAlertProps) {\n if (access === \"Access Request\") {\n return (\n <div\n data-testid={dataTestId}\n style={{\n width: width,\n height: height,\n border: \"1px solid rgba(0, 0, 0, 0.6)\",\n borderRadius: \"6px\",\n position: \"relative\",\n padding: \"8px 10px 2px 10px\",\n display: \"grid\",\n gridTemplateColumns: \"1fr 3fr 2fr\",\n gridTemplateRows: \"1fr 1fr 1fr\",\n boxSizing: \"border-box\",\n }}\n >\n <div style={{ fontSize: \"8px\", fontWeight: 400, position: \"absolute\", top: \"5px\", right: \"12px\" }}>{time}</div>\n <div style={{ fontWeight: 700, fontSize: \"12px\", color: \"rgba(248, 136, 5, 1)\", marginTop: \"5px\", marginLeft: \"5px\", gridArea: \"1/2/1/3\" }}>{access}</div>\n <div style={{ gridArea: \"2/1/3/2\" }}>\n <WavelengthAppLogo name={appLogo} width={22} />\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gridArea: \"2/2/3/4\", fontSize: \"10px\", gap: \"4px\", marginLeft: \"5px\" }}>\n <label htmlFor=\"\">Requestor: {requestorName}</label> <label htmlFor=\"\">{appNickname}</label>\n </div>\n <WavelengthStyledButton\n type=\"default\"\n styles={{ backgroundColor: \"rgba(143, 143, 143, 1)\", marginTop: \"5px\", borderRadius: \"5px\", height: \"22px\", width: \"44px\", gridArea: \"3/4/3/4\", color: \"white\" }}\n >\n clear\n </WavelengthStyledButton>\n </div>\n );\n } else if (access === \"Access Granted\") {\n return (\n <div\n data-testid={dataTestId}\n style={{\n width: width,\n height: height,\n border: \"1px solid rgba(0, 0, 0, 0.6)\",\n borderRadius: \"6px\",\n position: \"relative\",\n padding: \"8px 10px 2px 10px\",\n display: \"grid\",\n gridTemplateColumns: \"1fr 3fr 2fr\",\n gridTemplateRows: \"1fr 1fr 1fr\",\n boxSizing: \"border-box\",\n }}\n >\n <div style={{ fontSize: \"8px\", fontWeight: 400, position: \"absolute\", top: \"5px\", right: \"12px\" }}>{time}</div>\n <div style={{ fontWeight: 700, fontSize: \"12px\", marginTop: \"5px\", marginLeft: \"5px\", gridArea: \"1/2/1/4\", display: \"flex\", alignItems: \"center\" }}>\n <CheckIcon fontSize=\"small\" sx={{ color: \"rgba(36, 226, 32, 1)\", width: \"16px\" }} />\n {access}\n </div>\n\n <div style={{ gridArea: \"2/1/3/2\" }}>\n {\" \"}\n <WavelengthAppLogo name={appLogo} width={22} />{\" \"}\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gridArea: \"2/2/3/4\", fontSize: \"10px\", marginLeft: \"5px\" }}>\n <div style={{ fontWeight: 700, fontSize: \"10px\" }}>{appNickname}</div>\n <label htmlFor=\"\" style={{ marginTop: \"5px\" }}>\n {appAdmin}\n </label>{\" \"}\n <label htmlFor=\"\">Added you as a user</label>\n </div>\n <WavelengthStyledButton type=\"default\" styles={{ backgroundColor: \"rgba(143, 143, 143, 1)\", borderRadius: \"5px\", height: \"22px\", width: \"44px\", gridArea: \"3/4/3/4\", color: \"white\" }}>\n clear\n </WavelengthStyledButton>\n </div>\n );\n } else {\n return (\n <div\n data-testid={dataTestId}\n style={{\n width: width,\n height: height,\n border: \"1px solid rgba(0, 0, 0, 0.6)\",\n borderRadius: \"6px\",\n position: \"relative\",\n padding: \"8px 10px 2px 10px\",\n display: \"grid\",\n gridTemplateColumns: \"1fr 3fr 2fr\",\n gridTemplateRows: \"1fr 1fr 1fr\",\n boxSizing: \"border-box\",\n }}\n >\n <div style={{ fontSize: \"8px\", fontWeight: 400, position: \"absolute\", top: \"5px\", right: \"12px\" }}>{time}</div>\n <div style={{ fontWeight: 700, fontSize: \"12px\", marginTop: \"5px\", marginLeft: \"5px\", gridArea: \"1/2/1/4\", display: \"flex\", alignItems: \"center\" }}>\n <NotInterestedIcon fontSize=\"small\" sx={{ color: \"rgba(234, 30, 30, 1)\", width: \"16px\" }} />\n {access}\n </div>\n\n <div style={{ gridArea: \"2/1/3/2\" }}>\n <WavelengthAppLogo name={appLogo} width={22} />{\" \"}\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gridArea: \"2/2/3/4\", fontSize: \"10px\", marginLeft: \"5px\" }}>\n <div style={{ fontWeight: 700, fontSize: \"10px\" }}>{appNickname}</div>\n <label htmlFor=\"\" style={{ marginTop: \"5px\" }}>\n {appAdmin}\n </label>{\" \"}\n <label htmlFor=\"\">Denied your request</label>\n </div>\n <WavelengthStyledButton type=\"default\" styles={{ backgroundColor: \"rgba(143, 143, 143, 1)\", borderRadius: \"5px\", height: \"22px\", width: \"44px\", gridArea: \"3/4/3/4\", color: \"white\" }}>\n clear\n </WavelengthStyledButton>\n </div>\n );\n }\n}\n\nWavelengthAccessAlert.displayName = \"WavelengthAccessAlert\";\n\nexport default WavelengthAccessAlert;\n","import React from \"react\";\n\nimport Close from \"@mui/icons-material/Close\";\n\nimport { IconButton, SvgIcon } from \"@mui/material\";\nimport NotificationsIcon from \"@mui/icons-material/Notifications\";\n\ninterface WavelengthAlertProps {\n id?: string;\n height?: string;\n width?: string;\n variant?: \"caveman\" | \"basic\" | \"civilized\";\n backgroundColor?: string;\n alertType?: string | React.ReactNode;\n alertDescription?: string | React.ReactNode;\n datatestid?: string;\n viewed?: boolean;\n timeStamp?: string | React.ReactNode;\n appName?: string | React.ReactNode;\n url?: string;\n\n onClose?: () => void;\n}\nexport function WavelengthAlert({\n viewed,\n width = \"320px\",\n height,\n backgroundColor = \"#FBFBFB\",\n appName,\n alertType = \"Access Requested\",\n alertDescription = \"Keenan Ray has requested to be added as a User to your App\",\n datatestid,\n variant,\n timeStamp,\n url,\n\n id,\n onClose,\n}: WavelengthAlertProps) {\n const viewedStyles = viewed\n ? {\n backgroundColor: \"#DFDCDC\",\n border: \"1px solid #A0A2A3\",\n iconColor: \"#A0A2A3\",\n }\n : {\n backgroundColor: backgroundColor,\n border: \"1px solid rgba(2, 136, 209, 1)\",\n iconColor: \"rgba(2, 136, 209, 1)\",\n };\n\n const baseContainerStyle: React.CSSProperties = {\n width: width,\n height: height || \"fit-content\",\n backgroundColor: viewedStyles.backgroundColor,\n fontFamily: \"Roboto, sans-serif\",\n border: viewedStyles.border,\n borderRadius: \"4px\",\n display: \"flex\",\n flexDirection: \"row\",\n boxSizing: \"border-box\",\n alignItems: \"flex-start\",\n padding: \"12px 16px 10px 16px\",\n color: \"#1E4620\",\n position: variant === \"civilized\" ? \"relative\" : undefined,\n };\n\n const iconStyle = {\n width: \"24px\",\n padding: \"0px\",\n color: viewedStyles.iconColor,\n };\n\n if (variant === \"caveman\") {\n return (\n <div role=\"alert\" id={id} data-testid={datatestid} style={baseContainerStyle}>\n <NotificationsIcon sx={iconStyle} />\n\n <a href={url} style={{ display: \"flex\", flexDirection: \"column\", gap: \"4px\", width: \"250px\", marginLeft: \"12px\", textDecoration: \"none\", color: baseContainerStyle.color }}>\n <label style={{ fontSize: \"1rem\", lineHeight: \"150%\", letterSpacing: \"0.15px\", fontWeight: 550 }}>{timeStamp}</label>\n <div\n style={{\n fontSize: \".875rem\",\n fontWeight: 400,\n lineHeight: \"143%\",\n display: \"-webkit-box\",\n WebkitLineClamp: 2,\n WebkitBoxOrient: \"vertical\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {alertType}\n </div>\n </a>\n\n {onClose && (\n <IconButton sx={{ padding: \"0px\", width: \"20px\" }} onClick={onClose}>\n <Close />\n </IconButton>\n )}\n </div>\n );\n } else if (variant === \"basic\") {\n return (\n <div role=\"alert\" id={id} data-testid={datatestid} style={baseContainerStyle}>\n <NotificationsIcon sx={iconStyle} />\n <a href={url} style={{ display: \"flex\", flexDirection: \"column\", gap: \"4px\", width: \"250px\", marginLeft: \"12px\", textDecoration: \"none\", color: baseContainerStyle.color }}>\n <label style={{ fontSize: \"14px\", lineHeight: \"150%\", letterSpacing: \"0.15px\", fontWeight: 500 }}>{timeStamp}</label>\n <div style={{ fontSize: \"16px\", fontWeight: 550, lineHeight: \"24px\" }}>{alertType}</div>\n <div style={{ fontSize: \"14px\", lineHeight: \"20px\", fontWeight: 400 }}>{appName}</div>\n </a>\n {onClose && (\n <IconButton sx={{ padding: \"0px\", width: \"20px\" }} onClick={onClose}>\n <Close />\n </IconButton>\n )}\n </div>\n );\n } else {\n return (\n <div role=\"alert\" id={id} data-testid={datatestid} style={baseContainerStyle}>\n <NotificationsIcon sx={iconStyle} />\n <a href={url} style={{ display: \"flex\", flexDirection: \"column\", gap: \"7px\", width: \"250px\", marginLeft: \"12px\", textDecoration: \"none\", color: baseContainerStyle.color }}>\n <label style={{ fontSize: \"16px\", lineHeight: \"24px\", letterSpacing: \"0.15px\", fontWeight: 550 }}>{alertType}</label>\n <div style={{ fontSize: \"14px\", fontWeight: 400, lineHeight: \"20px\", letterSpacing: \"0.25px\", width: \"200px\" }}>{appName}</div>\n <div style={{ fontSize: \"14px\", lineHeight: \"20px\", fontWeight: 400 }}>{alertDescription}</div>\n </a>\n <div\n style={{\n textAlign: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"absolute\",\n right: \"15px\",\n bottom: \"12px\",\n }}\n className=\"icon-btn-container\"\n >\n <IconButton sx={{ padding: \"3px\" }} onClick={onClose}>\n <SvgIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#4E4E4F\">\n <path d=\"M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z\" />\n </svg>\n </SvgIcon>\n </IconButton>\n <div style={{ fontSize: \"11px\" }}>Dismiss</div>\n </div>\n <div style={{ top: \"6px\", right: \"15px\", position: \"absolute\", fontSize: \"11px\", color: \"#797979\" }}>{timeStamp}</div>\n </div>\n );\n }\n}\n\nWavelengthAlert.displayName = \"WavelengthAlert\";\n\nexport default WavelengthAlert;\n","import { Typography } from \"@mui/material\";\nimport Box from \"@mui/material/Box\";\nimport Container from \"@mui/material/Container\";\nimport Grid from \"@mui/material/Grid\";\n\ninterface WavelengthFooterProps {\n text?: string;\n textColor?: string;\n}\n\nexport function WavelengthFooter({ text, textColor }: WavelengthFooterProps) {\n return (\n <Box\n sx={{\n width: \"100%\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n gap: \"5px\",\n height: \"58px\",\n paddingTop: \"0.5rem\",\n paddingBottom: \".2rem\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"bottom\",\n backgroundSize: \"cover\",\n backgroundImage:\n \"url(data:image/png;base64,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)\",\n }}\n >\n <Container>\n <Grid container alignItems=\"center\" justifyContent=\"center\" spacing={1}>\n {text && (\n <>\n <Grid item>\n <Typography variant=\"h5\" component=\"div\" sx={{ fontSize: \"1rem\", color: textColor ? textColor : \"#FFFFFF\" }}>\n {text}\n </Typography>\n </Grid>\n <Grid item>\n <Typography variant=\"h5\" component=\"div\" sx={{ fontSize: \"1.25rem\", color: textColor ? textColor : \"#FFFFFF\" }}>\n /\n </Typography>\n </Grid>\n </>\n )}\n\n <Grid item>\n <Typography\n variant=\"h5\"\n component=\"div\"\n sx={{\n fontWeight: \"bold\",\n fontSize: \"1.25rem\",\n background: \"linear-gradient(90deg, #FF0F16 7.36%, #FF8224 23.49%, #FFD036 39.09%, #2DFF68 51.4%, #1FACFC 69.02%, #B200CF 94.75%)\",\n WebkitBackgroundClip: \"text\",\n WebkitTextFillColor: \"transparent\",\n backgroundClip: \"text\",\n textFillColor: \"transparent\",\n }}\n >\n Wavelength\n </Typography>\n </Grid>\n </Grid>\n </Container>\n </Box>\n );\n}\n\nWavelengthFooter.displayName = \"WavelengthFooter\";\n\nexport default WavelengthFooter;\n","import React, { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { z } from \"zod\";\n\n// ---- Types that mirror the web component's API ----\n/** Attributes passed through to the underlying `wavelength-button` */\nexport interface WavelengthButtonAttributes extends React.HTMLAttributes<HTMLElement> {\n [key: string]: any;\n}\n\nexport interface ButtonConfig {\n label?: string;\n buttonProps?: WavelengthButtonAttributes;\n eventName?: string;\n}\n\n/** Attributes passed through to each generated `wavelength-input` */\nexport interface WavelengthInputAttributes extends React.HTMLAttributes<HTMLElement> {\n [key: string]: any;\n}\n\ninterface WavelengthFormElement extends HTMLElement {\n schema?: unknown;\n value?: Record<string, unknown>;\n validate?: () => boolean;\n leftButton?: ButtonConfig;\n centerButton?: ButtonConfig;\n rightButton?: ButtonConfig;\n inputProps?: WavelengthInputAttributes;\n idPrefix?: string;\n title: string;\n titleAlign?: string;\n titleColor?: string;\n formWidth?: string;\n layout?: number[];\n addEventListener: (type: string, listener: EventListenerOrEventListenerObject) => void;\n removeEventListener: (type: string, listener: EventListenerOrEventListenerObject) => void;\n}\n\nexport type FormDetail<T> = { value: T; issues: z.ZodIssue[] };\nexport type FormInvalidDetail<T> = FormDetail<Partial<T>>;\nexport type FormValidDetail<T> = FormDetail<T>;\nexport type FormChangeDetail<T> = FormDetail<Partial<T>>;\n\nexport interface WavelengthFormProps<T extends object = Record<string, unknown>> {\n /** A Zod object schema */\n schema: z.ZodType<T>;\n /** Initial or controlled value (partial OK) */\n value?: Partial<T>;\n /** Configuration for an optional left-aligned button */\n leftButton?: ButtonConfig;\n /** Configuration for an optional center-aligned button */\n centerButton?: ButtonConfig;\n /** Configuration for an optional right-aligned button */\n rightButton?: ButtonConfig;\n /** Props applied to each generated WavelengthInput */\n inputProps?: WavelengthInputAttributes;\n /** Prefix applied to generated input IDs and names */\n idPrefix?: string;\n /** Optional heading text displayed above the form */\n title?: string;\n /** Alignment for the heading text (default: left) */\n titleAlign?: React.CSSProperties[\"textAlign\"];\n /** Color for the heading text */\n titleColor?: React.CSSProperties[\"color\"];\n /** Per-field placeholder overrides */\n placeholders?: Partial<Record<keyof T & string, string>>;\n /** CSS width applied to the underlying form element */\n formWidth?: string;\n /** Array defining how many fields appear in each row */\n layout?: number[];\n\n /** Standard React props */\n className?: string;\n style?: React.CSSProperties;\n\n /** Event callbacks (straight from web component custom events) */\n onChange?: (value: Partial<T>, issues: z.ZodIssue[]) => void;\n onValid?: (value: T, issues: z.ZodIssue[]) => void;\n onInvalid?: (value: Partial<T>, issues: z.ZodIssue[]) => void;\n /** Fired when the default left event is triggered */\n onLeft?: () => void;\n /** Fired when the default center event is triggered */\n onCenter?: () => void;\n /** Fired when the default right event is triggered */\n onRight?: () => void;\n /** Fired when the underlying form emits a native submit event */\n onSubmit?: (event: SubmitEvent) => void;\n}\n\nexport interface WavelengthFormRef<T extends object = Record<string, unknown>> {\n /** Runs the component’s internal validation and returns boolean */\n validate: () => boolean;\n /** Read current value (as the element holds it) */\n getValue: () => Partial<T> | undefined;\n /** Imperatively set the value */\n setValue: (v: Partial<T>) => void;\n}\n\nfunction useStableCallback<F extends (...args: any[]) => any>(fn?: F) {\n const fnRef = useRef(fn);\n useEffect(() => {\n fnRef.current = fn;\n }, [fn]);\n return (...args: Parameters<F>) => fnRef.current?.(...args);\n}\n\nfunction WavelengthFormInner<T extends object = Record<string, unknown>>(props: WavelengthFormProps<T>, ref: React.ForwardedRef<WavelengthFormRef<T>>) {\n const {\n schema,\n value,\n className,\n style,\n onChange,\n onValid,\n onInvalid,\n leftButton,\n centerButton,\n rightButton,\n inputProps,\n idPrefix,\n title,\n titleAlign,\n titleColor,\n placeholders,\n formWidth,\n layout,\n onLeft,\n onCenter,\n onRight,\n onSubmit,\n } = props;\n const hostRef = useRef<WavelengthFormElement | null>(null);\n\n const onChangeStable = useStableCallback(onChange);\n const onValidStable = useStableCallback(onValid);\n const onInvalidStable = useStableCallback(onInvalid);\n const onLeftStable = useStableCallback(onLeft);\n const onCenterStable = useStableCallback(onCenter);\n const onRightStable = useStableCallback(onRight);\n const onSubmitStable = useStableCallback(onSubmit);\n\n // Set properties & bind events\n useEffect(() => {\n const el = hostRef.current;\n if (!el) return;\n\n // Set schema/value as *properties* (not attributes)\n let finalSchema: unknown = schema;\n if (placeholders) {\n const shape: any = (schema as any)?.shape;\n if (shape) {\n const overrides: Record<string, any> = {};\n for (const [key, ph] of Object.entries(placeholders)) {\n const field = shape[key];\n if (field && typeof (field as any).meta === \"function\") {\n const curMeta = (field as any).meta() || {};\n overrides[key] = (field as any).meta({ ...curMeta, placeholder: ph });\n }\n }\n if (Object.keys(overrides).length > 0 && typeof (schema as any).extend === \"function\") {\n finalSchema = (schema as any).extend(overrides);\n }\n }\n }\n el.schema = finalSchema as any;\n if (value) el.value = value as any;\n if (leftButton !== undefined) el.leftButton = leftButton as any;\n if (centerButton !== undefined) el.centerButton = centerButton as any;\n if (rightButton !== undefined) el.rightButton = rightButton as any;\n if (inputProps !== undefined) el.inputProps = inputProps as any;\n el.idPrefix = idPrefix as any;\n if (title !== undefined) el.title = title;\n if (titleAlign !== undefined) el.titleAlign = titleAlign as any;\n if (titleColor !== undefined) el.titleColor = titleColor as any;\n if (formWidth !== undefined) el.formWidth = formWidth;\n if (layout !== undefined) el.layout = layout;\n }, [schema, value, leftButton, centerButton, rightButton, inputProps, idPrefix, title, titleAlign, titleColor, placeholders, formWidth, layout]);\n\n useEffect(() => {\n const el = hostRef.current;\n if (!el) return;\n\n const handleChange = (e: Event) => {\n const detail = (e as CustomEvent<FormChangeDetail<T>>).detail;\n onChangeStable?.(detail?.value ?? {}, detail?.issues ?? []);\n };\n const handleValid = (e: Event) => {\n const detail = (e as CustomEvent<FormValidDetail<T>>).detail;\n onValidStable?.(detail?.value as T, detail?.issues ?? []);\n };\n const handleInvalid = (e: Event) => {\n const detail = (e as CustomEvent<FormInvalidDetail<T>>).detail;\n onInvalidStable?.(detail?.value ?? {}, detail?.issues ?? []);\n };\n\n el.addEventListener(\"form-change\", handleChange as EventListener);\n el.addEventListener(\"form-valid\", handleValid as EventListener);\n el.addEventListener(\"form-invalid\", handleInvalid as EventListener);\n el.addEventListener(\"form-left\", onLeftStable as EventListener);\n el.addEventListener(\"form-center\", onCenterStable as EventListener);\n el.addEventListener(\"form-right\", onRightStable as EventListener);\n el.addEventListener(\"submit\", onSubmitStable as EventListener);\n\n return () => {\n el.removeEventListener(\"form-change\", handleChange as EventListener);\n el.removeEventListener(\"form-valid\", handleValid as EventListener);\n el.removeEventListener(\"form-invalid\", handleInvalid as EventListener);\n el.removeEventListener(\"form-left\", onLeftStable as EventListener);\n el.removeEventListener(\"form-center\", onCenterStable as EventListener);\n el.removeEventListener(\"form-right\", onRightStable as EventListener);\n el.removeEventListener(\"submit\", onSubmitStable as EventListener);\n };\n }, [onChangeStable, onValidStable, onInvalidStable, onLeftStable, onCenterStable, onRightStable, onSubmitStable]);\n\n // Expose an imperative API (validate/getValue/setValue)\n useImperativeHandle(\n ref,\n () => ({\n validate: () => hostRef.current?.validate?.() ?? false,\n getValue: () => hostRef.current?.value as any,\n setValue: (v) => {\n if (hostRef.current) hostRef.current.value = v as any;\n },\n }),\n [],\n );\n\n return <wavelength-form ref={hostRef as any} className={className} style={style} />;\n}\n\nconst WavelengthFormForwardRef = React.forwardRef(WavelengthFormInner);\nWavelengthFormForwardRef.displayName = \"WavelengthForm\";\n\nexport const WavelengthForm = WavelengthFormForwardRef as <T extends object = Record<string, unknown>>(\n props: WavelengthFormProps<T> & React.RefAttributes<WavelengthFormRef<T>>,\n) => React.ReactElement | null;\n\nexport default WavelengthForm;\n","import { useEffect, useRef } from \"react\";\nimport \"../../../web-components/wavelength-title-bar\";\n\ninterface WavelengthTitleBarProps {\n titleText?: string;\n subtitleText?: string;\n textColor?: string;\n shadowColor?: string;\n}\n\nexport function WavelengthTitleBar({ titleText, subtitleText, textColor, shadowColor }: WavelengthTitleBarProps) {\n const ref = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.setAttribute(\"title-text\", titleText || \"Default Title\");\n ref.current.setAttribute(\"subtitle-text\", subtitleText || \"Default Subtitle\");\n ref.current.setAttribute(\"text-color\", textColor || \"#34649b\");\n ref.current.setAttribute(\"shadow-color\", shadowColor || \"\");\n }\n }, [titleText, subtitleText, textColor, shadowColor]);\n\n return <wavelength-title-bar ref={ref}></wavelength-title-bar>;\n}\n\nWavelengthTitleBar.displayName = \"WavelengthTitleBar\";\n\nexport default WavelengthTitleBar;\n","import { useEffect, useRef } from \"react\";\nimport \"../../../web-components/wavelength-banner\";\n\nexport interface WavelengthBannerProps {\n bannerText?: string;\n bannerColor?: string;\n textColor?: string;\n opacity?: string | number;\n zIndex?: string | number;\n id?: string;\n classification?: string;\n control?: string[];\n}\n\nexport function WavelengthBanner({ bannerText, bannerColor, textColor, opacity = 1, zIndex = 10, id, classification, control }: WavelengthBannerProps) {\n const ref = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n\n const el = ref.current;\n\n if (bannerText !== undefined) el.setAttribute(\"banner-text\", bannerText);\n if (bannerColor !== undefined) el.setAttribute(\"banner-color\", bannerColor);\n if (textColor !== undefined) el.setAttribute(\"text-color\", textColor);\n if (classification !== undefined) el.setAttribute(\"classification\", classification);\n if (control !== undefined) el.setAttribute(\"control\", String(control));\n if (opacity !== undefined) el.setAttribute(\"opacity\", String(opacity));\n if (zIndex !== undefined) el.setAttribute(\"z-index\", String(zIndex));\n if (id) el.setAttribute(\"id\", id);\n }, [bannerText, bannerColor, textColor, classification, control, opacity, zIndex, id]);\n\n return <wavelength-banner ref={ref} />;\n}\n\nWavelengthBanner.displayName = \"WavelengthBanner\";\n\nexport default WavelengthBanner;\n","import React from \"react\";\n\ninterface DefaultProps {\n width?: string;\n height?: number;\n}\n\nexport function WavelengthDefaultIcon({ width = \"180\", height = 140 }: DefaultProps) {\n return (\n <div>\n <svg width={width} height={height} viewBox=\"0 0 185 140\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width={width} height={height} fill=\"#7A7A7A\" />\n <path\n d=\"M63.5 14.618L77.2811 57.0319L77.3934 57.3774H77.7566H122.353L86.2738 83.5906L85.9799 83.8042L86.0922 84.1497L99.8733 126.564L63.7939 100.35L63.5 100.137L63.2061 100.35L27.1267 126.564L40.9078 84.1497L41.0201 83.8042L40.7262 83.5906L4.64675 57.3774H49.2434H49.6066L49.7189 57.0319L63.5 14.618Z\"\n fill=\"url(#paint0_linear_3571_2148)\"\n fillOpacity=\".0.5\"\n stroke=\"#6B6B6B\"\n />\n <rect x=\"102\" y=\"16\" width=\"70\" height=\"115\" fill=\"#4A4A4A\" />\n <line x1=\"112\" y1=\"24.5\" x2=\"142\" y2=\"24.5\" stroke=\"#D9D9D9\" strokeWidth=\"3\" />\n <line x1=\"112\" y1=\"41.5\" x2=\"160\" y2=\"41.5\" stroke=\"#D9D9D9\" strokeWidth=\"3\" />\n <line x1=\"112\" y1=\"51.5\" x2=\"160\" y2=\"51.5\" stroke=\"#D9D9D9\" strokeWidth=\"3\" />\n <line x1=\"112\" y1=\"61.5\" x2=\"160\" y2=\"61.5\" stroke=\"#D9D9D9\" strokeWidth=\"3\" />\n <line x1=\"112\" y1=\"71.5\" x2=\"160\" y2=\"71.5\" stroke=\"#D9D9D9\" strokeWidth=\"3\" />\n <line x1=\"112\" y1=\"81.5\" x2=\"160\" y2=\"81.5\" stroke=\"#D9D9D9\" strokeWidth=\"3\" />\n <circle cx=\"48\" cy=\"44\" r=\"28\" fill=\"#D9D9D9\" fillOpacity=\"0.5\" />\n <path d=\"M76 44.2478C76 59.5749 63.4645 72 48.0011 72C48.0011 72 49 19.5 49 16C49 16 20 16 20 44.2478C35.4634 44.2478 76 44.2478 76 44.2478Z\" fill=\"#D9D9D9\" fillOpacity=\"0.5\" />\n <rect x=\"20\" y=\"83\" width=\"56\" height=\"15\" rx=\"4\" fill=\"#D9D9D9\" />\n <rect x=\"20\" y=\"107\" width=\"56\" height=\"15\" rx=\"4\" fill=\"#ABABAB\" />\n <defs>\n <linearGradient id=\"paint0_linear_3571_2148\" x1=\"63.5\" y1=\"13\" x2=\"63.5\" y2=\"140\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#A1A1A1\" />\n <stop offset=\"1\" stopColor=\"#606060\" />\n </linearGradient>\n </defs>\n </svg>\n </div>\n );\n}\n\nWavelengthDefaultIcon.displayName = \"WavelengthDefaultIcon\";\n\nexport default WavelengthDefaultIcon;\n","import React from \"react\";\nimport { getPalette } from \"../../themes/Palette\";\nimport Grid from \"@mui/material/Grid\";\n\ninterface HeaderProps {\n numberOfPlanes?: number;\n trailDir?: \"right\" | \"left\";\n color?: string;\n opacity?: number;\n gradient?: boolean;\n}\n\ninterface PlaneGridProps {\n opacity: number;\n}\n\nexport function WavelengthManyPlanes({ numberOfPlanes = 5, trailDir = \"left\", color, opacity = 1, gradient = false }: HeaderProps) {\n let direction: \"row-reverse\" | \"row\" = \"row-reverse\";\n let flippy: \"rotate(180)\" | \"\" = \"\";\n\n const palette = getPalette();\n const colorish: string = color ? color : palette.primary;\n\n if (trailDir !== \"right\") {\n direction = \"row\";\n flippy = \"rotate(180)\";\n }\n\n const PlaneGrid = ({ opacity }: PlaneGridProps) => {\n return (\n <Grid item>\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" transform={flippy} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_56_851\" style={{ maskType: \"alpha\" }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"40\" height=\"40\">\n <rect x=\"40\" width=\"40\" height=\"40\" transform=\"rotate(90 40 0)\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_56_851)\">\n <path\n d=\"M4.16662 14.8988L5.76079 14.8988L8.16454 18.1359L18.2616 18.1359L14.1291 4.16669L16.2425 4.16669L24.5075 18.1359L33.985 18.1359C34.5022 18.1359 34.9422 18.3172 35.305 18.68C35.6677 19.0428 35.8491 19.4828 35.8491 20C35.8491 20.5172 35.6677 20.9572 35.305 21.32C34.9422 21.6828 34.5022 21.8642 33.985 21.8642L24.5075 21.8642L16.2425 35.8334L14.1291 35.8334L18.2616 21.8642L8.19662 21.8642L5.76079 25.1013L4.16662 25.1013L5.64329 20L4.16662 14.8988Z\"\n fillOpacity={opacity}\n fill={colorish}\n />\n </g>\n </svg>\n </Grid>\n );\n };\n\n const PlaneGridWrapper = (size: number, baseOpacity: number) => {\n const planes: React.JSX.Element[] = [];\n\n if (gradient) {\n for (let i = 0; i < size; i++) {\n const currentOpacity = baseOpacity - (i / (size - 1)) * (baseOpacity - 0.05);\n planes.push(<PlaneGrid opacity={currentOpacity} key={i} />);\n }\n } else {\n for (let i = 0; i < size; i++) {\n planes.push(<PlaneGrid opacity={baseOpacity} key={i} />);\n }\n }\n\n return (\n <Grid container alignItems={\"center\"} flexDirection={direction} spacing={3}>\n {planes}\n </Grid>\n );\n };\n\n return PlaneGridWrapper(numberOfPlanes, opacity);\n}\n\nWavelengthManyPlanes.displayName = \"WavelengthManyPlanes\";\n\nexport default WavelengthManyPlanes;\n","import Divider from \"@mui/material/Divider\";\nimport Grid from \"@mui/material/Grid\";\nimport { getPalette } from \"../../../themes/Palette\";\n\ninterface WavelengthPlaneTrailProps {\n trailDir?: \"right\" | \"left\";\n color?: string;\n id?: string;\n}\n//trailX indicates the directions that the trail starts in corelation to the plane\n//if the plane is pointing/going right, then the direction will be trailR. and vice versa\n// //if it looks backwards in css this is why\n// export function WavelengthPlaneTrail({ trailDir = \"right\" }: WavelengthPlaneTrailProps) {\n\nexport function WavelengthPlaneTrail({ trailDir = \"right\", id, color }: WavelengthPlaneTrailProps) {\n //#region CSS\n // Retrieves the Palette for this Component\n let direction: \"row-reverse\" | \"row\" = \"row-reverse\";\n let flippy: \"rotate(180)\" | \"\" = \"\";\n\n if (trailDir !== \"right\") {\n direction = \"row\";\n flippy = \"rotate(180)\";\n } else {\n direction = \"row-reverse\";\n flippy = \"\";\n }\n\n const palette = getPalette();\n\n //#endregion\n\n return (\n <Grid container alignItems={\"center\"} flexDirection={direction}>\n {/* <Grid item id={planeDir}> testExample is working test,replace when done */}\n <Grid item id={id}>\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" transform={flippy} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_56_851\" style={{ maskType: \"alpha\" }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"40\" height=\"40\">\n <rect x=\"40\" width=\"40\" height=\"40\" transform=\"rotate(90 40 0)\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_56_851)\">\n <path\n d=\"M4.16662 14.8988L5.76079 14.8988L8.16454 18.1359L18.2616 18.1359L14.1291 4.16669L16.2425 4.16669L24.5075 18.1359L33.985 18.1359C34.5022 18.1359 34.9422 18.3172 35.305 18.68C35.6677 19.0428 35.8491 19.4828 35.8491 20C35.8491 20.5172 35.6677 20.9572 35.305 21.32C34.9422 21.6828 34.5022 21.8642 33.985 21.8642L24.5075 21.8642L16.2425 35.8334L14.1291 35.8334L18.2616 21.8642L8.19662 21.8642L5.76079 25.1013L4.16662 25.1013L5.64329 20L4.16662 14.8988Z\"\n fill={color ? color : palette.primary}\n />\n </g>\n </svg>\n </Grid>\n <Grid item style={{ width: \"75%\" }} id=\"trailExample\">\n <Divider variant=\"middle\" sx={{ bgcolor: color ? color : palette.primary }} />\n </Grid>\n </Grid>\n );\n}\n\nWavelengthPlaneTrail.displayName = \"WavelengthPlaneTrail\";\n\nexport default WavelengthPlaneTrail;\n","import { Modal, Box } from \"@mui/material\";\n\ninterface WavelengthConfirmationModalProps {\n show: boolean;\n setShow: (show: boolean) => void;\n textObj: Record<string, string>;\n\n id?: string;\n width?: string;\n height?: string;\n fontFamily?: string;\n textColor?: string;\n cancelButton?: React.ReactNode;\n submitButton?: React.ReactNode;\n\n backgroundColor?: string;\n}\n\nexport function WavelengthConfirmationModal(props: WavelengthConfirmationModalProps) {\n const { show, setShow, id } = props;\n\n const handleClose = () => {\n setShow(false);\n };\n\n return (\n <Modal open={show} onClose={handleClose}>\n <Box\n sx={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: props.width || \"451px\", // Custom width\n height: props.height || \"256px\", // Custom height\n boxSizing: \"border-box\",\n bgcolor: props.backgroundColor || \"background.paper\",\n borderRadius: \"16px\",\n color: props.textColor || \"black\",\n boxShadow: 24,\n padding: \"32px\",\n overflow: \"scroll\",\n }}\n >\n <p style={{ margin: \"0px\", fontSize: \"28px\", fontWeight: 500, padding: \"0px\", marginBottom: \"16px\", fontFamily: props.fontFamily }}>{props.textObj?.title}</p>\n <p style={{ margin: \"0px\", fontSize: \"16px\", lineHeight: \"19.2px\", fontFamily: props.fontFamily, fontWeight: 400, height: \"60px\" }}>{props.textObj?.dialog}</p>\n <div style={{ display: \"flex\", flexDirection: \"row\", justifyContent: \"flex-end\", marginTop: \"40px\", gap: \"8px\" }}>\n {props.cancelButton}\n {props.submitButton}\n </div>\n </Box>\n </Modal>\n );\n}\n\nWavelengthConfirmationModal.displayName = \"WavelengthConfirmationModal\";\n\nexport default WavelengthConfirmationModal;\n","import { Button, Dialog, DialogActions, DialogTitle, DialogContent, Typography, IconButton, Box } from \"@mui/material\";\nimport CloseIcon from \"@mui/icons-material/Close\";\ninterface WavelengthContentModalProps {\n show: boolean;\n setShow: (show: boolean) => void;\n textObj: Record<string, string>;\n handleContentModalOnConfirmProp: () => void;\n}\n\nexport function WavelengthContentModal(props: WavelengthContentModalProps) {\n const { show, setShow, handleContentModalOnConfirmProp } = props;\n const handleClose = () => {\n setShow(false);\n };\n\n return (\n <Dialog data-testid=\"testId-WavelengthContentModal\" open={show} onClose={handleClose} aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\">\n <DialogTitle alignContent={`center`} id=\"alert-dialog-title\">\n <Box display=\"flex\" alignItems=\"center\">\n <Box flexGrow={1}>{props.textObj?.title}</Box>\n <Box>\n <IconButton onClick={handleClose}>\n <CloseIcon />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent>\n <Typography align=\"center\">{props.textObj?.dialog}</Typography>\n </DialogContent>\n <DialogActions style={{ justifyContent: `center` }}>\n <Button data-testid={\"testId-WavelengthContentModalConfirmButton\"} onClick={handleContentModalOnConfirmProp} color={\"primary\"} variant={\"contained\"} autoFocus>\n {props.textObj?.purpose}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n\nWavelengthContentModal.displayName = \"WavelengthContentModal\";\n\nexport default WavelengthContentModal;\n","import React, { ReactNode } from \"react\";\n\nimport Menu from \"@mui/material/Menu\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Box from \"@mui/material/Box\";\nimport Slide from \"@mui/material/Slide\";\n\nimport { HelpOutline } from \"@mui/icons-material\";\nimport styled from \"styled-components\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Divider from \"@mui/material/Divider\";\n\nexport interface menuItemProps {\n itemType: \"header\" | \"link\" | \"footer\" | string;\n label: string | number;\n link?: string;\n end?: boolean;\n email?: string;\n hoverColor?: string;\n}\ninterface PopUPMenuProps {\n menuItems: menuItemProps[];\n customIcon?: React.ReactNode;\n width?: string;\n menuDirection?: \"top\" | \"bottom\";\n color?: string;\n border?: string;\n\n id?: string;\n}\n\nconst customStyle = { marginLeft: 16, marginRight: 16, marginTop: 8, marginBottom: 8 };\nconst emailStyle = {\n marginLeft: 16,\n marginRight: 16,\n marginTop: 8,\n marginBottom: 8,\n};\n\nexport function WavelengthPopUpMenu({ menuItems, customIcon = false, width, menuDirection = \"top\", color, id, border }: PopUPMenuProps) {\n const Links = styled.a<{ hoverColor?: string }>`\n color: inherit;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: ${({ hoverColor }) => hoverColor || \"inherit\"};\n }\n &:active {\n color: ${({ hoverColor }) => hoverColor || \"inherit\"};\n }\n `;\n\n /**anchorEl is the element the menu is anchored to*/\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n /**Dictates if the menu is open or not */\n const open = Boolean(anchorEl);\n let icon: ReactNode;\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n /**Sets Icon to be used inside of button */\n if (customIcon) {\n icon = customIcon;\n } else {\n icon = <HelpOutline fontSize=\"medium\" sx={{ color: color }} />;\n }\n /**Sets the position of the menu depending on users input for the menuDirection Prop */\n const anchor = menuDirection === \"top\" || menuDirection === undefined ? \"top\" : \"bottom\";\n const transform = menuDirection === \"top\" || menuDirection === undefined ? \"bottom\" : \"top\";\n\n return (\n <>\n <IconButton onClick={handleClick}>{icon}</IconButton>\n\n <Menu\n id={id}\n open={open}\n sx={{\n width: width,\n \"& .MuiPaper-root\": {\n border: border,\n },\n }}\n onClose={handleClose}\n anchorEl={anchorEl}\n TransitionComponent={Slide}\n anchorOrigin={{ vertical: anchor, horizontal: \"center\" }}\n transformOrigin={{ vertical: transform, horizontal: \"center\" }}\n >\n {/**For each menu Item */}\n {...menuItems.map((items, index) => {\n /**If true, items will have a divider at the bottom */\n if (items.end === true) {\n if (items.itemType === \"header\") {\n /** If item has link, it is a clickable */\n if (items.link) {\n return (\n <Box key={index}>\n <MenuItem>\n {/**Removes text decoration for the links */}\n <a style={{ textDecoration: \"none\", color: \"inherit\" }} href={items.link}>\n <span style={{ fontWeight: \"bold\" }}>{items.label}</span>\n </a>\n </MenuItem>\n <Divider />\n </Box>\n );\n } else {\n return (\n <Box key={index}>\n <p style={{ marginLeft: 16, marginRight: 16, marginTop: 6, marginBottom: 6 }}>\n <span style={{ fontWeight: \"bold\" }}>{items.label}</span>\n </p>\n <Divider />\n </Box>\n );\n }\n } else if (items.itemType === \"link\") {\n return (\n <Box key={index}>\n <MenuItem>\n <Links key={index} href={items.link} hoverColor={items.hoverColor}>\n {items.label}\n </Links>\n </MenuItem>\n <Divider />\n </Box>\n );\n } else {\n if (items.link) {\n return (\n <Box key={index}>\n <MenuItem>\n <a style={{ textDecoration: \"none\", color: \"inherit\" }} href={items.link}>\n {items.label}\n </a>\n </MenuItem>\n <Divider />\n </Box>\n );\n } else {\n if (items.email) {\n return (\n <Box key={index}>\n <Links href={items.email} style={emailStyle}>\n {items.label}\n </Links>\n <Divider />\n </Box>\n );\n } else {\n return (\n <Box key={index}>\n <p style={customStyle}>{items.label}</p>\n <Divider />\n </Box>\n );\n }\n }\n }\n } else if (items.end === undefined || items.end === false || items.end === null) {\n if (items.itemType === \"header\") {\n if (items.link) {\n return (\n <MenuItem key={index}>\n <Links href={items.link} hoverColor={items.hoverColor}>\n {items.label}\n </Links>\n </MenuItem>\n );\n } else {\n return (\n <p key={index} style={customStyle}>\n {items.label}\n </p>\n );\n }\n } else if (items.itemType === \"link\") {\n return (\n <MenuItem key={index} style={{ textDecoration: \"none\" }}>\n <Links href={items.link} hoverColor={items.hoverColor || \"\"}>\n {items.label}\n </Links>\n </MenuItem>\n );\n } else {\n if (items.link) {\n return (\n <MenuItem key={index} href={items.link}>\n {items.label}\n </MenuItem>\n );\n } else {\n if (items.email) {\n return (\n <p key={index} style={emailStyle}>\n <Links href={items.email} hoverColor={items.hoverColor || \"blue\"}>\n {items.label}\n </Links>\n </p>\n );\n } else {\n return (\n <p key={index} style={customStyle}>\n {items.label}\n </p>\n );\n }\n }\n }\n }\n })}\n </Menu>\n </>\n );\n}\n\nWavelengthPopUpMenu.displayName = \"WavelengthPopUpMenu\";\n\nexport default WavelengthPopUpMenu;\n","import React, { ReactNode } from \"react\";\nimport { Menu as MuiMenu } from \"@mui/material\";\nimport { MenuItem as MuiMenuItem, styled, SxProps, Theme } from \"@mui/material\";\n\nimport Grow from \"@mui/material/Grow\";\nimport { WavelengthButton } from \"../buttons/WavelengthButton/WavelengthButton\";\n//making minor change\n\ninterface DropdownProps {\n id?: string;\n palette: \"brewery\" | \"custom\";\n width: string;\n options: menuOptions[];\n buttonSx?: SxProps<Theme> | undefined;\n menuSx?: MenuSxProps;\n buttonText: string | ReactNode;\n}\ninterface menuOptions {\n option: React.ReactNode;\n onClick?: React.MouseEventHandler<HTMLLIElement> | undefined;\n}\ninterface MenuSxProps {\n backgroundColor?: string;\n borderColor?: string;\n hoverColor?: string;\n width?: string;\n boxShadow?: string;\n}\nexport function WavelengthDropdown({\n id,\n options,\n buttonSx,\n width = \"200px\",\n buttonText,\n menuSx = { backgroundColor: \"#FCFAF8\", borderColor: \"blue\", width: width, boxShadow: \"none\" },\n palette,\n}: DropdownProps) {\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const breweryStyleButton = {\n backgroundColor: \"#d16a2f\",\n color: \"white\",\n padding: \"16px 16px\",\n width: width,\n fontSize: \"18px\",\n minWidth: \"min-content\",\n borderTopRightRadius: \"8px\",\n borderTopLeftRadius: \"8px\",\n \"&:hover\": {\n backgroundColor: \"rgba(228, 119, 57, 1)\",\n },\n };\n const breweryDropDownStyle = {\n backgroundColor: \"#FCFAF8\",\n borderColor: \"#d16a2f\",\n hoverColor: \"rgba(209, 106, 47, 0.1)\",\n width: width,\n };\n const defaultDropdownSx = {\n backgroundColor: \"white\",\n borderColor: \"blue\",\n hoverColor: \"#d4d4e3\",\n width: width,\n };\n const defaultsx = menuSx ? { ...defaultDropdownSx, ...menuSx } : defaultDropdownSx;\n\n //variables that can change\n let myButtonSx;\n let myMenusx;\n\n if (palette === \"brewery\") {\n myButtonSx = { ...breweryStyleButton, ...buttonSx };\n myMenusx = { ...breweryDropDownStyle, ...menuSx };\n } else {\n myButtonSx = buttonSx;\n myMenusx = defaultsx;\n }\n const MenuItem = styled(MuiMenuItem)({\n \"&.MuiMenuItem-root\": {\n \"&.Mui-selected\": {\n backgroundColor: `${myMenusx.backgroundColor}`,\n },\n \"&:hover\": {\n backgroundColor: `${myMenusx.hoverColor}`,\n },\n },\n });\n const MyMenu = styled(MuiMenu)({\n top: \"-7px\",\n left: \"0px\",\n\n boxSizing: \"border-box\",\n \"& .MuiMenu-paper\": {\n borderBottomLeftRadius: \"8px\",\n borderBottomRightRadius: \"8px\",\n borderTopRightRadius: \"0px\",\n borderTopLeftRadius: \"0px\",\n boxShadow: menuSx?.boxShadow,\n\n width: myMenusx.width,\n\n backgroundColor: `${myMenusx.backgroundColor}`,\n },\n\n \"& .MuiMenu-list\": {\n borderBottomLeftRadius: \"8px\",\n borderBottomRightRadius: \"8px\",\n borderLeft: `1px solid ${myMenusx.borderColor}`,\n borderRight: `1px solid ${myMenusx.borderColor}`,\n borderBottom: `1px solid ${myMenusx.borderColor}`,\n },\n });\n\n return (\n <>\n <WavelengthButton\n variant=\"contained\"\n size=\"large\"\n borderRadius=\"0.5rem\"\n padding={myButtonSx.padding || breweryStyleButton.padding}\n width={width}\n margin=\"0rem\"\n colorOne={menuSx.borderColor}\n colorTwo={menuSx.backgroundColor}\n fontSize=\"1.125rem\"\n boxShadow=\"none\"\n onClick={handleClick}\n >\n {buttonText}\n </WavelengthButton>\n\n <MyMenu\n id={id}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n \"aria-labelledby\": \"basic-button\",\n }}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"center\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"center\" }}\n TransitionComponent={Grow}\n >\n {options.map((item, index) => {\n return (\n <MenuItem key={index} onClick={item.onClick}>\n {item.option}\n </MenuItem>\n );\n })}\n </MyMenu>\n </>\n );\n}\n\nconst WavelengthDropdownStyled = styled(WavelengthDropdown)``;\n\nWavelengthDropdown.displayName = \"WavelengthDropdown\";\n\nexport default WavelengthDropdownStyled;\n","import React, { ReactNode } from \"react\";\nimport { getPalette } from \"../../themes/Palette\";\n\nimport Snackbar from \"@mui/material/Snackbar\";\nimport SnackbarContent from \"@mui/material/SnackbarContent\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { IconButton } from \"@mui/material\";\n\ninterface ConfirmationSnackbarProps {\n show: boolean;\n // The variable 'show' is used later, the linter is not picking it up\n setShow: (show: boolean) => void;\n closeIcon?: ReactNode | React.JSX.Element;\n message?: ReactNode | React.JSX.Element;\n snackBarColor?: string;\n textColor?: string;\n horryAlign?: \"left\" | \"right\" | \"center\";\n vertyAlign?: \"top\" | \"bottom\";\n durationSb?: number;\n id?: string;\n width?: string | number;\n icon?: ReactNode;\n}\n\nexport function WavelengthSnackbar({ show, setShow, closeIcon, message, snackBarColor, textColor, horryAlign, vertyAlign, durationSb, width, icon, id }: ConfirmationSnackbarProps) {\n const handleClose = () => {\n setShow(false);\n };\n\n const defaultIcon = (\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\">\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n );\n\n const palette = getPalette();\n const durationMs = durationSb ? durationSb * 1000 : 4000;\n return (\n <Snackbar\n id={id}\n open={show}\n onClose={handleClose}\n autoHideDuration={durationMs}\n anchorOrigin={{\n vertical: vertyAlign ? vertyAlign : \"bottom\",\n horizontal: horryAlign ? horryAlign : \"center\",\n }}\n >\n <SnackbarContent\n style={{\n backgroundColor: snackBarColor ? snackBarColor : palette.primary,\n color: textColor ? textColor : palette.secondary,\n display: \"flex\",\n\n width: width,\n }}\n message={\n <div>\n <span>{icon}</span>\n <span id=\"snackbar\">{message ? message : \"Insert Message Here\"}</span>\n </div>\n }\n action={\n <div style={{ display: \"flex\", justifyContent: \"center\" }} onClick={handleClose}>\n {closeIcon ? closeIcon : defaultIcon}\n </div>\n }\n ></SnackbarContent>\n </Snackbar>\n );\n}\n\nWavelengthSnackbar.displayName = \"WavelengthSnackbar\";\n\nexport default WavelengthSnackbar;\n","import React, { ReactNode } from \"react\";\nimport Snackbar from \"@mui/material/Snackbar\";\n\nimport SnackbarContent from \"@mui/material/SnackbarContent\";\n\ninterface StandardSnackbarProps {\n type: \"success\" | \"error\" | \"disabled\";\n //snackBarColor?: string;\n show: boolean;\n closeIcon: ReactNode | React.JSX.Element;\n icon?: ReactNode;\n\n toggleShow: (on: boolean) => void;\n // The variable 'show' is used later, the linter is not picking it up\n\n // setShow: (show: boolean) => void;\n horryAlign?: \"left\" | \"right\" | \"center\";\n vertyAlign?: \"top\" | \"bottom\";\n durationSb?: number;\n width?: string | number;\n message?: string | ReactNode;\n customVertyAlign?: string;\n id?: string;\n}\n\nexport function WavelengthStandardSnackbar({ type, show, icon, horryAlign, vertyAlign, durationSb, width, message, customVertyAlign, toggleShow, closeIcon, id }: StandardSnackbarProps) {\n const handleClose = () => {\n toggleShow(false);\n };\n\n const durationMs = durationSb ? durationSb * 1000 : 4000;\n let bgColor = \"\";\n if (type === \"success\") {\n bgColor = \"#25ab21\";\n } else if (type === \"error\") {\n bgColor = \"#FF4646\";\n } else if (type === \"disabled\") {\n bgColor = \"#737373\";\n }\n\n const sIcon = icon ? icon : \"\";\n\n return (\n <Snackbar // z-index is set to the recommend value of 1400, but other components are not adjusted to take this into account - 24 Sep 24\n id={id}\n sx={{ marginTop: customVertyAlign ? `${customVertyAlign}` : \"\", zIndex: 1400 }}\n open={show}\n onClose={handleClose}\n autoHideDuration={durationMs}\n anchorOrigin={{\n vertical: vertyAlign ? vertyAlign : \"top\",\n horizontal: horryAlign ? horryAlign : \"center\",\n }}\n >\n <SnackbarContent\n style={{\n backgroundColor: bgColor,\n borderRadius: \"1px\",\n\n //color: props.textColor ? props.textColor : palette.secondary,\n }}\n sx={{ paddingTop: \"0px\", paddingBottom: \"0px\" }}\n message={\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"1fr 1fr 1fr 1fr 1fr\",\n\n width: width,\n }}\n >\n <div style={{ gridColumnStart: 2, gridColumnEnd: 5, textAlign: \"center\", display: \"flex\", flexDirection: \"row\", justifyContent: \"center\", alignItems: \"center\" }} id=\"snackbar\">\n <div style={{ marginTop: \"5px\" }}>{sIcon}</div>\n <div style={{ fontSize: \"1rem\", marginLeft: \"10px\" }}>{message ? message : \"Insert Message Here\"}</div>\n </div>\n <div style={{ gridColumnStart: 6 }} onClick={handleClose}>\n {closeIcon}\n </div>\n </div>\n }\n ></SnackbarContent>\n </Snackbar>\n );\n}\n\nWavelengthStandardSnackbar.displayName = \"WavelengthStandardSnackbar\";\n\nexport default WavelengthStandardSnackbar;\n","import Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport React, { ReactNode, useEffect, useRef } from \"react\";\n\ninterface Testprops {\n isPopUpOpen: boolean;\n type: \"success\" | \"error\" | \"disabled\";\n icon?: ReactNode;\n width?: string | number;\n message?: string | ReactNode;\n img: React.JSX.Element | ReactNode;\n\n toggleOpen: (value: React.SetStateAction<boolean>) => void;\n customVertyAlign?: string;\n}\nexport const useOutsideClick = (callback: () => void) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n callback();\n }\n };\n\n document.addEventListener(\"mouseup\", handleClickOutside);\n document.addEventListener(\"touchend\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mouseup\", handleClickOutside);\n document.removeEventListener(\"touchend\", handleClickOutside);\n };\n }, [callback]);\n\n return ref;\n};\nexport function WavelengthTestSnackbar({ isPopUpOpen, toggleOpen, type, message, customVertyAlign, width, img }: Testprops) {\n const ref = useOutsideClick(() => {\n toggleOpen(false);\n });\n\n let bgColor = \"\";\n if (type === \"success\") {\n bgColor = \"#25ab21\";\n } else if (type === \"error\") {\n bgColor = \"#FF4646\";\n } else if (type === \"disabled\") {\n bgColor = \"#737373\";\n }\n\n return (\n <>\n {isPopUpOpen && (\n <Box\n sx={{ position: \"fixed\", right: \"auto\", top: \"24px\", left: \"50%\", transform: \"translateX(-50%)\" }}\n ref={ref}\n style={{\n height: \"50px\",\n width: width,\n backgroundColor: bgColor,\n borderRadius: \"1px\",\n display: \"flex\",\n\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingRight: \"20px\",\n paddingLeft: \"20px\",\n zIndex: 2800,\n marginTop: customVertyAlign ? `${customVertyAlign}` : \"\",\n }}\n >\n <div style={{ backgroundColor: \"red\" }}></div>\n <div style={{ color: \"white\", fontSize: \"1rem\" }}>{message}</div>\n <Button\n variant=\"text\"\n onClick={() => {\n toggleOpen(false);\n }}\n >\n {img}\n </Button>\n </Box>\n )}\n </>\n );\n}\n\nWavelengthTestSnackbar.displayName = \"WavelengthTestSnackbar\";\n\nexport default WavelengthTestSnackbar;\n","import Box from \"@mui/material/Box\";\nimport Slider from \"@mui/material/Slider\";\nimport { Mark } from \"@mui/material/Slider/useSlider.types\";\nimport React from \"react\";\n\ninterface sliderProps {\n width?: string;\n labelColor?: string;\n color?: string;\n value: number;\n\n valueDisplayed?: boolean;\n minVal: number;\n maxVal: number;\n step: number;\n handleChange: (event: Event, newValue: number | number[]) => void;\n labelFunc?(val: number): string;\n marks?: Mark[];\n}\n\nexport function WavelengthSlider({ width = \"300px\", color, valueDisplayed, marks, labelColor, value, maxVal = 100, minVal, step = 1, labelFunc, handleChange }: sliderProps) {\n const on = valueDisplayed ? \"on\" : \"off\";\n\n return (\n <Box sx={{ width: width }}>\n <Slider\n aria-label=\"Custom marks\"\n value={value}\n getAriaValueText={labelFunc}\n step={step}\n marks={marks}\n valueLabelDisplay={on}\n max={maxVal}\n min={minVal}\n onChange={handleChange}\n sx={{\n color: color,\n \"& .MuiSlider-markLabel\": {\n color: labelColor,\n },\n }}\n />\n </Box>\n );\n}\n\nWavelengthSlider.displayName = \"WavelengthSlider\";\n\nexport default WavelengthSlider;\n","import React, { useState, useEffect, CSSProperties } from \"react\";\nimport IconButton from \"@mui/material/IconButton\";\nimport NavigateBeforeIcon from \"@mui/icons-material/NavigateBefore\";\nimport NavigateNextIcon from \"@mui/icons-material/NavigateNext\";\nimport Typography from \"@mui/material/Typography\";\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardMedia from \"@mui/material/CardMedia\";\nimport CardActionArea from \"@mui/material/CardActionArea\";\n\ninterface carouselItem {\n title?: string;\n description?: string;\n image: string;\n path: string;\n}\n\ninterface carouselConfigArray {\n items: carouselItem[];\n}\n\ninterface adjustableDimensions {\n buttonSize?: number;\n imageHeight?: number;\n imageWidth?: number;\n cardWidth?: number;\n cardHeight?: number;\n}\n\nexport const DefaultCarousel: React.FC<carouselConfigArray & adjustableDimensions> = ({ items, buttonSize, imageHeight, imageWidth, cardHeight, cardWidth }) => {\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const adjustButtonSize = buttonSize !== undefined ? buttonSize : 70;\n const adjustImageHeight = imageHeight !== undefined ? imageHeight : 250;\n const adjustImageWidth = imageWidth !== undefined ? imageWidth : 300;\n const adjustCardHeight = cardHeight !== undefined ? cardHeight : 345;\n const adjustCardWidth = cardWidth !== undefined ? cardWidth : 300;\n\n //button navigation\n const handleNext = () => {\n setCurrentIndex((prevIndex) => (prevIndex + 1) % items.length);\n };\n\n const handlePrev = () => {\n setCurrentIndex((prevIndex) => (prevIndex - 1 + items.length) % items.length);\n };\n\n //navigate to external url\n const handleClick = () => {\n window.open(items[currentIndex].path, \"_blank\");\n };\n\n return (\n <div>\n <div>\n <Grid\n container\n spacing={1}\n sx={{\n alignItems: \"center\",\n }}\n >\n <div>\n <IconButton onClick={handlePrev} sx={{ margin: 1, color: \"white\" }}>\n <NavigateBeforeIcon style={{ fontSize: adjustButtonSize }} />\n </IconButton>\n </div>\n <Card\n sx={{\n maxWidth: adjustCardWidth,\n maxHeight: adjustCardHeight,\n }}\n >\n <CardActionArea onClick={handleClick}>\n <CardMedia sx={{ height: adjustImageHeight, width: adjustImageWidth }} image={items[currentIndex].image} />\n <CardContent>\n <Typography variant=\"h4\">{items[currentIndex].title}</Typography>\n <Typography variant=\"body1\">{items[currentIndex].description}</Typography>\n </CardContent>\n </CardActionArea>\n </Card>\n\n <div>\n <IconButton onClick={handleNext} sx={{ margin: 1, color: \"white\" }}>\n <NavigateNextIcon style={{ fontSize: adjustButtonSize }} />\n </IconButton>\n </div>\n </Grid>\n </div>\n </div>\n );\n};\n\nDefaultCarousel.displayName = \"DefaultCarousel\";\n\nexport default DefaultCarousel;\n","import React, { useState, useEffect, CSSProperties } from \"react\";\nimport { cards } from \"./images\";\nimport Grid from \"@mui/material/Grid\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardMedia from \"@mui/material/CardMedia\";\nimport CardActionArea from \"@mui/material/CardActionArea\";\n\nconst delay = 2500;\n\ninterface carouselItem {\n title?: string;\n description?: string;\n image: string;\n path: string;\n}\n\ninterface carouselConfigArray {\n items: carouselItem[];\n}\n\ninterface adjustDimenforCarousel {\n contHeight?: number;\n contWidth?: number;\n cardWidth?: number;\n cardHeight?: number;\n}\n\nexport const SliderCardCarousel: React.FC<carouselConfigArray & adjustDimenforCarousel> = ({ items, cardHeight, cardWidth, contHeight, contWidth }) => {\n const [index, setIndex] = useState(0);\n const [isHovered, setIsHovered] = useState(false);\n\n useEffect(() => {\n setTimeout(() => setIndex((prevIndex) => (prevIndex === items.length - 1 ? 0 : prevIndex + 1)), delay);\n\n return () => {};\n }, [index]);\n\n //dynamic inline styling for auto carousel\n const carouselCardWidth = items.length > 0 ? `calc(35% * ${items.length})` : \"200%\";\n\n const adjustContHeight = contHeight !== undefined ? contHeight : \"100%\";\n const adjustContWidth = contWidth !== undefined ? contWidth : \"200%\";\n const adjustCardHeight = cardHeight !== undefined ? cardHeight : 120;\n const adjustCardWith = cardWidth !== undefined ? cardWidth : 310;\n\n interface StylesDictionary {\n [Key: string]: CSSProperties;\n }\n\n const styles: StylesDictionary = {\n carouselcontainer: {\n overflow: \"hidden\",\n position: \"relative\",\n borderColor: \"#4b5563\",\n height: adjustContHeight,\n width: adjustContWidth,\n minHeight: \"280px\",\n minWidth: \"640px\",\n borderRadius: \"10px\",\n },\n carouselTrackStyle: {\n display: \"flex\",\n position: \"relative\",\n justifyContent: \"center\",\n left: \"0\",\n alignItems: \"center\",\n gap: \"5px\",\n width: carouselCardWidth,\n\n height: \"100%\",\n transition: \"background-color 0.5s ease-in-out\",\n },\n\n carouselCard: {\n transition: \"transform 0.3s ease, box-shadow 0.3s ease\",\n transform: isHovered ? \"scale(0.9)\" : \"scale(1)\",\n boxShadow: isHovered ? \"5px 5px 8px rgba(222, 222, 222, 0.362), 10px 10px 8px rgba(152, 133, 133, 0.392), 15px 15px 8px rgba(139, 154, 139, 0.303)\" : \"none\",\n },\n };\n\n return (\n <div style={styles.carouselcontainer}>\n <div className=\"my-animation\" style={styles.carouselTrackStyle}>\n <Grid\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n container\n spacing={0.5}\n >\n {items.map((card) => (\n <div key={card.title}>\n <Card\n sx={{\n transition: \"transform 0.3s ease, box-shadow 0.3s ease\",\n transform: isHovered ? \"scale(0.9)\" : \"scale(1)\",\n boxShadow: isHovered ? \"5px 5px 8px rgba(222, 222, 222, 0.362), 10px 10px 8px rgba(152, 133, 133, 0.392), 15px 15px 8px rgba(139, 154, 139, 0.303)\" : \"none\",\n }}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <CardActionArea href={card.path}>\n <CardMedia sx={{ height: adjustCardHeight, width: adjustCardWith }} image={card.image} />\n <CardContent>\n <h3>{card.title}</h3>\n <p>{card.description}</p>\n </CardContent>\n </CardActionArea>\n </Card>\n </div>\n ))}\n </Grid>\n </div>\n </div>\n );\n};\n\nSliderCardCarousel.displayName = \"SliderCardCarousel\";\n\nexport default SliderCardCarousel;\n","import { useState, useMemo, CSSProperties } from \"react\";\nimport WavelengthButtonPagination from \"./WavelengthButtonPagination\";\nimport WavelengthVariationPagination from \"./WavelengthVariationPagination\";\n\ninterface PaginationProps {\n totalPages: number;\n boundaryCount?: number;\n siblingCount?: number;\n currentPageNumber: number;\n style?: \"text\" | \"contained\" | \"outlined\" | \"circular\";\n onPageChange: (page: number) => void;\n}\n\nexport const range = (start: number, end: number): number[] => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n};\n\n// for dropdown menu\nexport function ascendingRange(start: number, end: number): number[] {\n const result: number[] = [];\n\n for (let i = start; i < end; i++) {\n if (i !== start) {\n result.push(i);\n }\n }\n\n return result;\n}\n\nexport function DefaultPagination({ totalPages, currentPageNumber, siblingCount = 1, boundaryCount = 1, style, onPageChange }: PaginationProps) {\n const [current, setCurrent] = useState<number>(currentPageNumber);\n const startPages = range(1, Math.min(boundaryCount, totalPages));\n const endPages = range(Math.max(totalPages - boundaryCount + 1, boundaryCount + 1), totalPages);\n const siblingsStart = Math.max(Math.min(current - siblingCount, totalPages - boundaryCount - siblingCount * 2 - 1), boundaryCount + 2);\n const siblingsEnd = Math.min(Math.max(current + siblingCount, boundaryCount + siblingCount * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : totalPages - 1);\n const firstEllipseList = ascendingRange(1, siblingsStart);\n const secondEllipseList = ascendingRange(siblingsEnd, totalPages);\n\n const itemList = useMemo(() => {\n return [\n ...startPages,\n ...(siblingsStart > boundaryCount + 2 ? [\"...\"] : boundaryCount + 1 < totalPages - boundaryCount ? [boundaryCount + 1] : []),\n ...range(siblingsStart, siblingsEnd),\n ...(siblingsEnd < totalPages - boundaryCount - 1 ? [\"...\"] : totalPages - boundaryCount > boundaryCount ? [totalPages - boundaryCount] : []),\n ...endPages,\n ];\n }, [current, totalPages, boundaryCount, siblingCount]);\n\n const handleChangePage = (value: number | string) => {\n if (typeof value === \"number\") {\n setCurrent(value);\n onPageChange(value);\n }\n };\n if (style === \"circular\") {\n return (\n <WavelengthButtonPagination\n totalPages={totalPages}\n current={current}\n handleChangePage={handleChangePage}\n itemList={itemList}\n firstEllipseList={firstEllipseList}\n secondEllipseList={secondEllipseList}\n />\n );\n } else if (style === \"text\") {\n return (\n <WavelengthVariationPagination\n totalPages={totalPages}\n current={current}\n variant=\"text\"\n handleChangePage={handleChangePage}\n itemList={itemList}\n firstEllipseList={firstEllipseList}\n secondEllipseList={secondEllipseList}\n />\n );\n } else if (style === \"outlined\") {\n return (\n <WavelengthVariationPagination\n totalPages={totalPages}\n current={current}\n variant=\"outlined\"\n handleChangePage={handleChangePage}\n itemList={itemList}\n firstEllipseList={firstEllipseList}\n secondEllipseList={secondEllipseList}\n />\n );\n } else if (style === \"contained\") {\n return (\n <WavelengthVariationPagination\n totalPages={totalPages}\n current={current}\n variant=\"contained\"\n handleChangePage={handleChangePage}\n itemList={itemList}\n firstEllipseList={firstEllipseList}\n secondEllipseList={secondEllipseList}\n />\n );\n } else {\n return (\n <WavelengthVariationPagination\n totalPages={totalPages}\n current={current}\n handleChangePage={handleChangePage}\n itemList={itemList}\n firstEllipseList={firstEllipseList}\n secondEllipseList={secondEllipseList}\n />\n );\n }\n}\n\nDefaultPagination.displayName = \"DefaultPagination\";\n\nexport default DefaultPagination;\n","import { useState, CSSProperties } from \"react\";\nimport Button from \"@mui/material/Button\";\nimport ArrowBackIosNewIcon from \"@mui/icons-material/ArrowBackIosNew\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport styled from \"styled-components\";\ninterface StylesDictionary {\n [Key: string]: CSSProperties;\n}\ninterface PaginationProps {\n totalPages: number;\n current: number;\n handleChangePage: (value: number | string) => void;\n itemList: (string | number)[];\n firstEllipseList: number[];\n secondEllipseList: number[];\n}\nconst MyDroplistItems = styled(\"li\")`\n background-color: white;\n color: #000000;\n padding: 10px 30px;\n textdecoration: none;\n display: block;\n width: 80px;\n\n &:hover {\n background-color: lightgray;\n }\n`;\n\nexport function WavelengthButtonPagination({ totalPages, current, handleChangePage, itemList, firstEllipseList, secondEllipseList }: PaginationProps) {\n const [isOpen, setIsOpen] = useState(false); // for dropdown\n const [isSecOpen, setIsSecOpen] = useState(false);\n\n const toggleDropdown = (index: number) => {\n if (index === 1) {\n setIsOpen(!isOpen);\n } else {\n setIsSecOpen(!isSecOpen);\n }\n };\n\n const dropstyles: StylesDictionary = {\n dropcenter: {\n position: \"relative\",\n left: \"-40px\",\n top: \"-20px\",\n },\n mydrop: {\n position: \"absolute\",\n zIndex: \"3\",\n maxHeight: \"200px\",\n overflow: \"scroll\",\n },\n rangenumbers: {\n display: \"flex\",\n },\n butPagCompDivStyle: {\n display: \"flex\",\n },\n };\n\n const WLButtonPagStyle = {\n background: \"white\",\n color: \"black\",\n border: \"none\",\n padding: \"1px\",\n fontSize: \"16px\",\n height: \"55px\",\n width: \"40px\",\n boxshadow: \"4px 2px 4px darkslategray\",\n borderRadius: \"50%\",\n margin: \"3px\",\n\n \"&:hover\": {\n background: \"#49baf7\",\n },\n\n \"&:disabled\": {\n background: \"rgb(226, 223, 223)\",\n },\n\n \"&.active\": {\n background: \"#8FD8FF\",\n },\n };\n\n return (\n <div style={dropstyles.butPagCompDivStyle}>\n <Button onClick={() => handleChangePage(current - 1)} disabled={current === 1} sx={WLButtonPagStyle}>\n <ArrowBackIosNewIcon />\n </Button>\n\n <section style={dropstyles.rangenumbers}>\n {itemList.map((item, index) =>\n item === \"...\" && index === 1 ? ( //first half ellipse with first half dropdown\n // dropdown\n // eslint-disable-next-line react/jsx-key\n <div>\n <Button key={index} onClick={() => toggleDropdown(1)} className={current === index ? \"active\" : \"\"} sx={WLButtonPagStyle}>\n {item}\n </Button>\n {isOpen && (\n <div style={dropstyles.dropcenter}>\n <ul style={dropstyles.mydrop}>\n {firstEllipseList.map((item) => (\n <MyDroplistItems\n key={item}\n onClick={() => {\n (handleChangePage(item), setIsOpen(false)); // Close dropdown after click\n }}\n >\n {item}\n </MyDroplistItems>\n ))}\n </ul>\n </div>\n )}\n </div>\n ) : item === \"...\" && index === 5 ? ( //second half ellipse with second half dropdown\n <div>\n <Button key={index} onClick={() => toggleDropdown(5)} className={current === index ? \"active\" : \"\"} sx={WLButtonPagStyle}>\n {item}\n </Button>\n {isSecOpen && (\n <div style={dropstyles.dropcenter}>\n <ul style={dropstyles.mydrop}>\n {secondEllipseList.map((item) => (\n <MyDroplistItems\n key={item}\n onClick={() => {\n (handleChangePage(item), setIsOpen(false)); // Close dropdown after click\n }}\n >\n {item}\n </MyDroplistItems>\n ))}\n </ul>\n </div>\n )}\n </div>\n ) : (\n <Button key={index} onClick={() => handleChangePage(item)} className={current === item ? \"active\" : \"\"} sx={WLButtonPagStyle}>\n {item}\n </Button>\n ),\n )}\n </section>\n <Button onClick={() => handleChangePage(current + 1)} disabled={current === totalPages} sx={WLButtonPagStyle}>\n <ArrowForwardIosIcon />\n </Button>\n </div>\n );\n}\n\nWavelengthButtonPagination.displayName = \"WavelengthButtonPagination\";\n\nexport default WavelengthButtonPagination;\n","import { useState, CSSProperties } from \"react\";\nimport Button from \"@mui/material/Button\";\nimport ArrowBackIosNewIcon from \"@mui/icons-material/ArrowBackIosNew\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport styled from \"styled-components\";\n\ninterface StylesDictionary {\n [Key: string]: CSSProperties;\n}\n\ninterface PaginationProps {\n totalPages: number;\n current: number;\n variant?: \"text\" | \"contained\" | \"outlined\";\n handleChangePage: (value: number | string) => void;\n itemList: (string | number)[];\n firstEllipseList: number[];\n secondEllipseList: number[];\n}\n\nexport function WavelengthVariationPagination({ totalPages, current, variant, handleChangePage, itemList, firstEllipseList, secondEllipseList }: PaginationProps) {\n const [isOpen, setIsOpen] = useState(false); // for dropdown\n const [isSecOpen, setIsSecOpen] = useState(false);\n\n const MyDroplistItems = styled(\"li\")`\n background-color: white;\n color: #000000;\n padding: 10px 30px;\n textdecoration: none;\n display: block;\n width: 80px;\n\n &:hover {\n background-color: lightgray;\n }\n `;\n\n const dropstyles: StylesDictionary = {\n pagination: {\n display: \"flex\",\n },\n dropcenter: {\n position: \"relative\",\n left: \"-40px\",\n top: \"-20px\",\n },\n mydrop: {\n position: \"absolute\",\n zIndex: \"3\",\n maxHeight: \"200px\",\n overflow: \"scroll\",\n },\n rangenumbers: {\n display: \"flex\",\n },\n };\n\n const toggleDropdown = (index: number) => {\n if (index === 1) {\n setIsOpen(!isOpen);\n } else {\n setIsSecOpen(!isSecOpen);\n }\n };\n\n return (\n <div style={dropstyles.pagination}>\n <Button onClick={() => handleChangePage(current - 1)} variant={variant} disabled={current === 1}>\n <ArrowBackIosNewIcon />\n </Button>\n\n <section style={dropstyles.rangenumbers}>\n {itemList.map((item, index) =>\n item === \"...\" && index === 1 ? ( //first half ellipse with first half dropdown\n // eslint-disable-next-line react/jsx-key\n <div>\n <Button key={index} onClick={() => toggleDropdown(1)} variant={variant} className={current === index ? \"active\" : \"\"}>\n {item}\n </Button>\n {isOpen && (\n <div style={dropstyles.dropcenter}>\n <ul style={dropstyles.mydrop}>\n {firstEllipseList.map((item) => (\n <MyDroplistItems\n style={dropstyles.mydroplist}\n key={item}\n onClick={() => {\n // Handle item click here\n (handleChangePage(item), setIsOpen(false)); // Close dropdown after click\n }}\n >\n {item}\n </MyDroplistItems>\n ))}\n </ul>\n </div>\n )}\n </div>\n ) : item === \"...\" && index === 5 ? ( //second half ellipse with second half dropdown\n <div>\n <Button key={index} onClick={() => toggleDropdown(5)} variant={variant} className={current === index ? \"active\" : \"\"}>\n {item}\n </Button>\n {isSecOpen && (\n <div style={dropstyles.dropcenter}>\n <ul style={dropstyles.mydrop}>\n {secondEllipseList.map((item) => (\n <MyDroplistItems\n style={dropstyles.mydroplist}\n key={item}\n onClick={() => {\n // Handle item click here\n (handleChangePage(item), setIsOpen(false)); // Close dropdown after click\n }}\n >\n {item}\n </MyDroplistItems>\n ))}\n </ul>\n </div>\n )}\n </div>\n ) : (\n <Button key={index} onClick={() => handleChangePage(item)} className={current === item ? \"active\" : \"\"} variant={variant}>\n {item}\n </Button>\n ),\n )}\n </section>\n\n <Button onClick={() => handleChangePage(current + 1)} disabled={current === totalPages} variant={variant}>\n <ArrowForwardIosIcon />\n </Button>\n </div>\n );\n}\n\nWavelengthVariationPagination.displayName = \"WavelengthVariationPagination\";\n\nexport default WavelengthVariationPagination;\n","import React, { useRef, useEffect, forwardRef, useImperativeHandle, ChangeEvent, CSSProperties } from \"react\";\n\ninterface WavelengthInputProps extends React.HTMLAttributes<HTMLElement> {\n id?: string;\n name?: string;\n value?: string;\n clearable?: boolean;\n placeholder?: string;\n inputType?: string;\n regex?: string;\n helperMessage?: string;\n errorMessage?: string;\n minLengthMessage?: string;\n maxLengthMessage?: string;\n validationType?: \"none\" | \"always\" | \"onBlur\" | \"manual\";\n minLength?: number;\n maxLength?: number;\n required?: boolean;\n forceError?: boolean;\n disabled?: boolean;\n width?: string;\n height?: string;\n padding?: string;\n borderRadius?: string;\n backgroundColor?: string;\n labelColor?: string;\n placeholderColor?: string;\n textColor?: string;\n borderColor?: string;\n focusColor?: string;\n helperColor?: string;\n label?: string;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const WavelengthInput = forwardRef<HTMLElement & { validate?: () => boolean }, WavelengthInputProps>(\n (\n {\n id,\n name,\n value,\n clearable,\n placeholder,\n inputType = \"text\",\n regex,\n helperMessage,\n errorMessage,\n minLengthMessage,\n maxLengthMessage,\n validationType = \"none\",\n minLength,\n maxLength,\n required,\n forceError,\n disabled,\n width,\n height,\n padding,\n borderRadius,\n backgroundColor,\n labelColor,\n placeholderColor,\n textColor,\n borderColor,\n focusColor,\n helperColor,\n label,\n onChange,\n style,\n ...rest\n },\n ref,\n ) => {\n const internalRef = useRef<HTMLElement>(null);\n\n useImperativeHandle(ref, () => ({\n ...(internalRef.current as HTMLElement),\n validate: () => (internalRef.current as any)?.validate?.(true),\n }));\n\n useEffect(() => {\n const el = internalRef.current;\n if (!el) return;\n\n const set = (attr: string, val?: string | number | boolean) => {\n if (val !== undefined && val !== null && val !== false) {\n el.setAttribute(attr, String(val));\n } else {\n el.removeAttribute(attr);\n }\n };\n\n set(\"id\", id);\n set(\"name\", name);\n set(\"value\", value);\n set(\"clearable\", clearable ? \"\" : undefined);\n set(\"placeholder\", placeholder);\n set(\"input-type\", inputType);\n set(\"regex\", regex);\n set(\"helper-message\", helperMessage);\n set(\"error-message\", errorMessage);\n set(\"min-length-message\", minLengthMessage);\n set(\"max-length-message\", maxLengthMessage);\n set(\"validation-type\", validationType);\n set(\"min-length\", minLength);\n set(\"max-length\", maxLength);\n set(\"required\", required ? \"\" : undefined);\n set(\"force-error\", forceError ? \"\" : undefined);\n set(\"width\", width);\n set(\"height\", height);\n set(\"padding\", padding);\n set(\"border-radius\", borderRadius);\n set(\"background-color\", backgroundColor);\n set(\"label-color\", labelColor);\n set(\"placeholder-color\", placeholderColor);\n set(\"text-color\", textColor);\n set(\"border-color\", borderColor);\n set(\"focus-color\", focusColor);\n set(\"helper-color\", helperColor);\n set(\"label\", label);\n set(\"disabled\", disabled ? \"\" : undefined);\n }, [\n id,\n name,\n value,\n clearable,\n placeholder,\n inputType,\n regex,\n helperMessage,\n errorMessage,\n minLengthMessage,\n maxLengthMessage,\n validationType,\n minLength,\n maxLength,\n required,\n forceError,\n width,\n height,\n padding,\n borderRadius,\n backgroundColor,\n labelColor,\n placeholderColor,\n textColor,\n borderColor,\n focusColor,\n helperColor,\n label,\n disabled,\n ]);\n\n useEffect(() => {\n const el = internalRef.current;\n if (!el || !onChange) return;\n\n const handler = (e: Event) => {\n const input = el.shadowRoot?.querySelector(\"input\");\n if (input) {\n const synthetic = {\n ...e,\n target: input,\n currentTarget: input,\n } as unknown as ChangeEvent<HTMLInputElement>;\n onChange(synthetic);\n }\n };\n\n el.addEventListener(\"inputChange\", handler);\n return () => el.removeEventListener(\"inputChange\", handler);\n }, [onChange]);\n\n const combinedStyle: CSSProperties = {\n ...style,\n ...(backgroundColor ? { [\"--wavelength-label-background\" as any]: backgroundColor } : {}),\n };\n\n return <wavelength-input ref={internalRef} style={combinedStyle} {...rest} />;\n },\n);\n\nWavelengthInput.displayName = \"WavelengthInput\";\n\nexport default WavelengthInput;\n","import { ReactElement, useEffect, useRef, useMemo, useState, ChangeEvent } from \"react\";\nimport styled from \"styled-components\";\nimport DefaultPagination from \"../pagination/WavelengthDefaultPagination\";\n\ninterface DataType {\n id: number;\n [key: string]: any;\n}\n\ninterface ColumnProps<T> {\n key: string;\n title: string | ReactElement;\n width?: string;\n editable?: boolean;\n render?: (column: ColumnProps<T>, item: T) => ReactElement;\n}\n\ntype Props<T> = {\n columns: Array<ColumnProps<T>>;\n data?: T[] | undefined;\n itemsPerPage: number;\n totalPages: number;\n};\n\nconst ModalInputDiv = styled.div`\n display: flex;\n flex-direction: column; /* Corrected this line */\n gap: 3px;\n margin: 3px;\n\n label {\n align-self: flex-start;\n color: #c6c7cc;\n }\n\n input,\n select {\n width: 100%;\n padding: 12px 20px;\n margin: 8px 0;\n box-sizing: border-box;\n border: none;\n outline: none;\n border-bottom: 2px solid #c6c7cc;\n\n &:hover {\n border-bottom: 2px solid black;\n }\n\n &:focus {\n border-bottom: 2px solid #8fd8ff;\n }\n }\n`;\n\n//modal styling\nconst ModalOverlay = styled.div`\n position: fixed;\n bottom: 19%;\n right: 15%;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1;\n`;\n\nconst ModalWrapper = styled.div`\n background-color: white;\n border-radius: 8px;\n padding: 20px;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n position: relative;\n min-width: 300px;\n z-index: 1;\n display: flex;\n align-items: center;\n`;\n\nconst ModalClose = styled.button`\n position: absolute;\n top: 10px;\n right: 10px;\n font-size: 20px;\n cursor: pointer;\n border: none;\n background: none;\n z-index: 2;\n`;\n\n//header styling\nconst TableHeadStyle = styled.th`\n position: relative;\n`;\n\n//kebab styling\nconst KebabMenu = styled.div`\n display: inline-block;\n position: absolute;\n right: 0;\n top: 2px;\n`;\n\nconst KebabIcon = styled.div`\n cursor: pointer;\n font-size: 20px;\n padding: 5px;\n\n &:hover,\n &:focus {\n color: #45beff;\n }\n &:active {\n color: #8fd8ff;\n }\n`;\n\nconst MenuOptions = styled.ul`\n position: absolute;\n right: 0;\n top: 100%;\n background-color: #f9f9f9;\n min-width: 160px;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 1;\n list-style: none;\n padding: 0;\n margin: 0;\n\n li {\n padding: 10px;\n text-decoration: none;\n display: block;\n cursor: pointer;\n\n &:hover {\n background-color: #ddd;\n }\n }\n`;\n\n//tbox\nconst StyledBoxDiv = styled.div`\n background-color: white;\n width: 700px;\n height: 480px;\n position: relative;\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n`;\n\nconst StyledNavBoxDiv = styled.div`\n background-color: white;\n width: 700px;\n display: flex; /* Make parent a flex-container */\n justify-content: center;\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n\n box-shadow: 0.5px 3px 5px black;\n`;\n\nconst StyledTd = styled.td`\n border-top: 1px solid #c6c7cc;\n border-bottom: 1px solid #c6c7cc;\n padding: 10px 15px;\n vertical-align: middle;\n`;\n\nconst StyledTableTwo = styled.table`\n width: 95%;\n height: 95%;\n border-collapse: collapse;\n background-color: white;\n color: black;\n\n margin-left: auto;\n margin-right: auto;\n\n th {\n position: relative; /* Enable absolute positioning of pseudo-elements */\n padding: 10px 15px;\n\n /* Create the partial right border */\n &:not(:last-child):after {\n content: \"\"; /* Ensure the pseudo-element is visible */\n position: absolute;\n right: 0; /* Position it on the right side of the th */\n top: 50%; /* Position it in the vertical center */\n height: 50%; /* Set the height of the border to be half the height of th */\n border-right: 1px solid #c6c7cc;\n transform: translateY(-50%); /* Center it vertically */\n }\n }\n`;\n\nconst StyledInput = styled.input`\n height: 100%;\n width: 100%;\n outline: none;\n border: none;\n color: #8fd8ff;\n`;\n\nexport const WavelengthDataTable = <T extends DataType>({ data, columns, itemsPerPage, totalPages }: Props<T>) => {\n const [localData, setLocalData] = useState<T[]>(data || []);\n const copiedArray = [...(data || [])];\n const [editingId, setEditingId] = useState<number | null>(null);\n const [editedColumnKey, setEditedColumnKey] = useState<string | null>(null);\n const [editedValue, setEditedValue] = useState<string>(\"\");\n\n const [noRowsOpen, setNoRowsOpen] = useState(false); //for filter changes\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const [searchItem, setSearchItem] = useState(\"\");\n\n const [selectedValue, setSelectedValue] = useState<string>(columns[0]?.key || \"\");\n const [currentPage, setCurrentPage] = useState(1);\n\n //kebab menu state ----------------------------//\n const [isOpen, setIsOpen] = useState(false);\n const [editingMenuKey, setEditingMenuKey] = useState<string | null>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n\n //----select logic-----------------------///\n function isNumeric(value: string): boolean {\n return /^\\d+$/.test(value); // This checks for integers\n }\n\n const handleChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n setSelectedValue(event.target.value);\n setLocalData(copiedArray);\n };\n\n useEffect(() => {\n if (!selectedValue || searchItem === \"\") {\n // If there's no column selected or no search item, reset to original data\n setLocalData(copiedArray);\n setNoRowsOpen(false);\n return;\n }\n\n // Apply filtering\n if (isNumeric(searchItem)) {\n // Filter by number\n const filteredItems = localData.filter((item) => item[selectedValue].toString().includes(searchItem));\n setLocalData(filteredItems);\n\n // Handle case for no results\n if (filteredItems.length === 0) {\n setNoRowsOpen(true);\n } else {\n setNoRowsOpen(false);\n }\n } else {\n // Filter by string (case-insensitive)\n const filteredItems = localData.filter((item) => item[selectedValue].toString().toLowerCase().includes(searchItem.toLowerCase()));\n\n // Handle case for no results\n if (filteredItems.length === 0) {\n setNoRowsOpen(true);\n } else {\n setLocalData(filteredItems);\n setNoRowsOpen(false);\n }\n }\n }, [selectedValue, searchItem]);\n //---------------------------------------------//\n //----popup modal logic -----------------------///\n const openModal = () => {\n setIsModalOpen(true);\n };\n\n const closeModal = () => {\n setIsModalOpen(false);\n };\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (isModalOpen && modalRef.current && !modalRef.current.contains(event.target as Node)) {\n closeModal();\n }\n };\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isModalOpen]);\n\n //kebab menu functions ----------------------------//\n const toggleMenu = (key: string) => {\n setIsOpen(!isOpen);\n setEditingMenuKey(key);\n };\n //----- pagination system-------------------------//\n const indexOfLastItem = currentPage * itemsPerPage;\n const indexOfFirstItem = indexOfLastItem - itemsPerPage;\n\n const currentPageData = localData.filter((_, index) => index >= indexOfFirstItem && index < indexOfLastItem);\n // ----------------------------------------------//\n\n //---- sorting function ------------------------//\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(\"asc\");\n\n const handleSort = (column: keyof DataType, sortType: typeof sortOrder) => {\n const sortedItems = [...localData].sort((a, b) => {\n const valueA = a[column];\n const valueB = b[column];\n\n if (typeof valueA === \"string\" && typeof valueB === \"string\") {\n if (sortType === \"asc\") {\n return valueA.localeCompare(valueB);\n } else {\n return valueB.localeCompare(valueA);\n }\n } else if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n if (sortType === \"asc\") {\n return valueA - valueB;\n } else {\n return valueB - valueA;\n }\n } else {\n return 0;\n }\n });\n\n setLocalData(sortedItems);\n setSortOrder(sortOrder === \"asc\" ? \"desc\" : \"asc\");\n };\n // ----------------------------------------------//\n\n const handleEdit = (id: number, value: string, columnKey: string) => {\n //this helps find the id mumber and column to access input\n setEditingId(id);\n setEditedValue(value);\n setEditedColumnKey(columnKey);\n };\n\n const saveEdit = (id: number, editedValue: string, columnKey: string) => {\n setLocalData(localData.map((item) => (id === item.id ? { ...item, [columnKey]: editedValue } : item)));\n setEditingId(null);\n };\n\n const handleCancel = () => {\n setEditingId(null);\n };\n\n const headers = columns.map((column, index) => {\n return (\n <TableHeadStyle key={`headCell-${index}`}>\n {column.title}\n {\n <KebabMenu ref={menuRef} key={index}>\n <KebabIcon\n title={`KebabIcon-${index}`}\n onClick={() => {\n toggleMenu(column.key);\n }}\n >\n &#8942;\n </KebabIcon>\n {isOpen && editingMenuKey === column.key && (\n <MenuOptions>\n {sortOrder === \"asc\" ? (\n <li title={`MenuListASC-${index}`} onClick={() => handleSort(column.key, \"asc\")}>\n <span>&#11014;</span> Sort ASC\n </li>\n ) : (\n <li title={`MenuListDES-${index}`} onClick={() => handleSort(column.key, \"desc\")}>\n <span>&#11015;</span> Sort DESC\n </li>\n )}\n <li title={`MenuListFilterButton-${index}`} onClick={openModal}>\n <span>&#9207;</span> Filter\n </li>\n {isModalOpen && (\n <ModalOverlay>\n <ModalWrapper ref={modalRef}>\n <ModalClose title={`ModalClose-${index}`} onClick={closeModal}>\n &times;\n </ModalClose>\n <ModalInputDiv>\n <label htmlFor={\"filterSelectId\"}>Columns: </label>\n <select title={`filterSelect-${index}`} id={\"filterSelectId\"} value={selectedValue} onChange={handleChange}>\n {columns.map((item) => (\n <option key={item.key}>{item.key}</option>\n ))}\n </select>\n </ModalInputDiv>\n <ModalInputDiv>\n <label htmlFor={\"filterInputId\"}>Values: </label>\n <input\n title={`Inputfiltertest-${index}`}\n id={\"filterInputId\"}\n type={isNumeric(searchItem) ? \"number\" : \"text\"}\n value={searchItem}\n onKeyDown={(e) => {\n if (e.key === \"Backspace\") {\n setLocalData(copiedArray);\n }\n }}\n onChange={(e) => setSearchItem(e.target.value)}\n />\n </ModalInputDiv>\n </ModalWrapper>\n </ModalOverlay>\n )}\n </MenuOptions>\n )}\n </KebabMenu>\n }\n </TableHeadStyle>\n );\n });\n const rows =\n !currentPageData?.length || noRowsOpen ? (\n <tr>\n <td title={\"NoDataRows\"} colSpan={columns.length}>\n No data\n </td>\n </tr>\n ) : (\n currentPageData?.map((item) => (\n <tr key={item.id}>\n {columns.map((column, index2) => {\n return (\n <StyledTd key={index2}>\n {editingId === item.id && editedColumnKey === column.key ? (\n <StyledInput\n title={`styledRow-${item.id}-${column.key}-${index2}`}\n type=\"text\"\n value={editedValue}\n onChange={(e) => setEditedValue(e.target.value)}\n onBlur={() => saveEdit(item.id, editedValue, column.key)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n saveEdit(item.id, editedValue, column.key);\n } else if (e.key === \"Escape\") {\n handleCancel();\n }\n }}\n autoFocus\n />\n ) : (\n <span title={`spanRow-${item.id}-${column.key}-${index2}`} onDoubleClick={() => handleEdit(item.id, item[column.key], column.key)}>\n {item[column.key]}\n </span>\n )}\n </StyledTd>\n );\n })}\n </tr>\n ))\n );\n\n return (\n <div>\n <StyledBoxDiv title=\"StyledBoxDiv\">\n <StyledTableTwo title=\"StyledTable\">\n <thead>\n <tr>{headers}</tr>\n </thead>\n\n <tbody>{rows}</tbody>\n </StyledTableTwo>\n </StyledBoxDiv>\n <StyledNavBoxDiv>\n <DefaultPagination totalPages={totalPages} currentPageNumber={currentPage} onPageChange={setCurrentPage} style=\"circular\" />\n </StyledNavBoxDiv>\n </div>\n );\n};\n\nWavelengthDataTable.displayName = \"WavelengthDataTable\";\n\nexport default WavelengthDataTable;\n","import { ReactElement, useMemo, useState, Fragment } from \"react\";\nimport styled from \"styled-components\";\n\ninterface fileObject {\n id: number;\n [key: string]: any;\n}\n\ninterface Details {\n relationId: number;\n fileObjects: fileObject[];\n}\n\ninterface DataType {\n id: number;\n [key: string]: any;\n Details?: Details;\n}\n\ninterface ColumnProps {\n key: string;\n title: string | ReactElement;\n subDataTableColumn: boolean;\n PrimaryBoldText?: boolean;\n}\n\ntype Props<T> = {\n columns: Array<ColumnProps>;\n data?: T[] | undefined;\n downloadArrowOnClick?: () => void | Promise<void>;\n downloadMissionOnClick?: () => void | Promise<void>;\n addFilesOnClick?: () => void | Promise<void>;\n};\n\nconst TableContainer = styled.div`\n width: 1200px;\n border-radius: 16px;\n`;\n\nconst TableRow = styled.div<{ $amountofColumns: number }>`\n display: grid;\n grid-template-columns: ${({ $amountofColumns }) => `repeat(${$amountofColumns}, 1fr)`};\n`;\n\nconst TablePrimaryRow = styled.div<{ $amountofColumns: number }>`\n display: grid;\n grid-template-columns: ${({ $amountofColumns }) => `repeat(${$amountofColumns}, 1fr)`};\n`;\n\nconst BodyRowContainer = styled.div`\n border: 1px solid black;\n background-color: white;\n border-radius: 16px;\n overflow: hidden;\n margin-bottom: 10px;\n`;\n\nconst TableHeaderCell = styled.div`\n padding-left: 12px;\n padding-right: 25px;\n height: 60px;\n background-color: #48999c;\n display: flex;\n align-items: center;\n`;\n\nconst TableBodyCell = styled.div<{ $primaryBoldState?: boolean }>`\n background-color: #fff;\n color: black;\n position: relative;\n padding: 10px 5px 0px 20px;\n text-wrap: balance;\n font-size: ${(props) => (props.$primaryBoldState ? \"24px\" : \"16px\")};\n font-weight: ${(props) => (props.$primaryBoldState ? \"bold\" : \"normal\")};\n`;\n\nconst ButtonStylingRow = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nconst BottomArrowBar = styled.div`\n background-color: #e9e9e9;\n text-align: center;\n`;\n\nconst BottomUpArrowBar = styled.div`\n background-color: #e9e9e9;\n text-align: center;\n position: relative;\n`;\n\nconst SubDataTable = styled.table`\n background-color: white;\n color: black;\n width: 100%;\n border-collapse: collapse;\n line-height: 1.2;\n`;\n\nconst SubDataTableHeaderRow = styled.tr`\n height: 50px;\n background-color: #304359;\n color: white;\n font-size: 16px;\n font-weight: bold;\n\n th {\n white-space: nowrap;\n }\n`;\n\nconst SubDataTableBodyRow = styled.tbody`\n font-size: 14px;\n`;\n\nconst SubDataTableBodyRowContainer = styled.tr`\n td {\n padding: 10px 0;\n max-width: 100px;\n }\n\n &:nth-child(even) {\n background-color: #96e0e5;\n }\n`;\n\nconst SubDataTableCell = styled.td`\n text-align: center;\n`;\n\nconst SubDataHeaderColumn = styled.thead`\n background-color: #304359;\n`;\n\nconst SortButton = styled.button<{ $sortColor: string }>`\n font-size: 16px;\n font-weight: bold;\n color: white;\n background-color: #11ffee00;\n border: none;\n white-space: nowrap;\n`;\n\nconst DownloadMissionButton = styled.button`\n width: 217px;\n height: 45px;\n padding: 12px 32px 12px 32px;\n background-color: #1a8083cc;\n color: white;\n\n margin-left: 22px;\n margin-bottom: 15px;\n margin-top: 10px;\n white-space: nowrap;\n border: none;\n border-radius: 8px;\n gap: 4px;\n\n font-weight: 600;\n font-size: 16px;\n\n &:hover {\n background-color: rgba(38, 186, 190, 1);\n color: rgba(247, 247, 249, 1);\n cursor: pointer;\n }\n\n &:active {\n background-color: #67a8aa;\n transition: background-color 0.2s ease;\n }\n`;\n\nconst AddButton = styled.button`\n width: 130px;\n height: 45px;\n border: 1px solid #1a8083;\n\n padding: 12px 32px 12px 32px;\n gap: 4px;\n background-color: white;\n color: #1a8083cc;\n\n margin-left: 22px;\n margin-bottom: 15px;\n margin-top: 10px;\n white-space: nowrap;\n border-radius: 8px;\n\n font-weight: 600;\n font-size: 16px;\n\n &:hover {\n background-color: rgba(26, 128, 131, 0.1);\n color: rgba(26, 128, 131, 1);\n cursor: pointer;\n }\n\n &:active {\n background-color: #bad7da;\n transition: background-color 0.2s ease;\n }\n`;\n\nconst DownloadArrow = styled.button`\n background-color: transparent;\n border: none;\n\n &:active {\n transform: scale(0.95);\n }\n`;\n\nexport const ChildDataTable = <T extends DataType>({ data, columns, downloadArrowOnClick, downloadMissionOnClick, addFilesOnClick }: Props<T>) => {\n const HeadColumns = columns.filter((col) => col.subDataTableColumn === false);\n const SubDataColumns = columns.filter((col) => col.subDataTableColumn === true);\n\n // --- Dropdown logic --- //\n const [openRow, setOpenRow] = useState<number | null>(null);\n\n // -- Sorting logic for primary datatable --//\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(\"asc\");\n const [sortKey, setSortKey] = useState<keyof DataType>(\"\"); //use this for name, age, etc when setting with button\n\n // -- Sorting logic for subdatable --//\n const [sortSubOrder, setSortSubOrder] = useState<\"asc\" | \"desc\">(\"asc\");\n const [sortSubKey, setSortSubKey] = useState<keyof DataType>(\"\");\n\n const toggleSortOrder = (key: string) => {\n setSortOrder(sortOrder === \"asc\" ? \"desc\" : \"asc\");\n setSortKey(key);\n };\n\n const toggleSubSortOrder = (key: string) => {\n setSortSubOrder(sortSubOrder === \"asc\" ? \"desc\" : \"asc\");\n setSortSubKey(key);\n };\n\n const toggleDropdown = (id: number) => {\n setOpenRow(openRow === id ? null : id);\n };\n\n const toggleUpward = () => {\n setOpenRow(null);\n };\n\n function trimBeforePeriod(text: string): string {\n const index = text.indexOf(\".\");\n return index === -1 ? text : text.substring(index + 1);\n }\n\n const processedRowData = useMemo(() => {\n const result = [...(data ?? [])];\n\n //sorting for primary header\n if (sortOrder) {\n result.sort((a, b) => {\n const valueA = a[sortKey];\n const valueB = b[sortKey];\n\n if (typeof valueA === \"string\" && typeof valueB === \"string\") {\n if (sortOrder === \"asc\") {\n return valueA.localeCompare(valueB);\n } else {\n return valueB.localeCompare(valueA);\n }\n } else if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n if (sortOrder === \"asc\") {\n return valueA - valueB;\n } else {\n return valueB - valueA;\n }\n } else {\n return 0;\n }\n });\n }\n\n //sorting for subtable files\n if (sortSubOrder) {\n result.map((item) =>\n item.Details?.fileObjects.sort((c, d) => {\n const valueC = c[sortSubKey];\n const valueD = d[sortSubKey];\n\n if (typeof valueC === \"string\" && typeof valueD === \"string\") {\n if (sortSubOrder === \"asc\") {\n return valueC.localeCompare(valueD);\n } else {\n return valueD.localeCompare(valueC);\n }\n } else if (typeof valueC === \"number\" && typeof valueD === \"number\") {\n if (sortSubOrder === \"asc\") {\n return valueC - valueD;\n } else {\n return valueD - valueC;\n }\n } else {\n return 0;\n }\n }),\n );\n }\n\n return result;\n }, [data, sortKey, sortOrder, sortSubKey, sortSubOrder]);\n\n //sorting for primary headers\n const renderSortButton = (column, sortOrder, sortKey) => {\n return sortKey === column.key ? (\n sortOrder === \"asc\" ? (\n <>\n <SortButton $sortColor=\"black\" onClick={() => toggleSortOrder(column.key)}>\n {column.title}{\" \"}\n <svg width=\"15\" height=\"10\" viewBox=\"0 0 15 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.2375 0.368774L7.5 6.09377L1.7625 0.368774L0 2.13127L7.5 9.63127L15 2.13127L13.2375 0.368774Z\" fill=\"white\" />\n </svg>\n </SortButton>\n </>\n ) : (\n <>\n <SortButton $sortColor=\"black\" onClick={() => toggleSortOrder(column.key)}>\n {column.title}{\" \"}\n <svg width=\"15\" height=\"10\" viewBox=\"0 0 15 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.2375 9.2627L7.5 3.5377L1.7625 9.2627L0 7.5002L7.5 0.000196457L15 7.5002L13.2375 9.2627Z\" fill=\"white\" />\n </svg>\n </SortButton>\n </>\n )\n ) : (\n <>\n <SortButton $sortColor=\"black\" onClick={() => toggleSortOrder(column.key)}>\n {column.title}{\" \"}\n <svg width=\"15\" height=\"10\" viewBox=\"0 0 15 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.2375 0.368774L7.5 6.09377L1.7625 0.368774L0 2.13127L7.5 9.63127L15 2.13127L13.2375 0.368774Z\" fill=\"white\" />\n </svg>\n </SortButton>\n </>\n );\n };\n\n const renderSortSubButton = (column, sortSubOrder, sortSubKey) => {\n const columnKey = trimBeforePeriod(column.key);\n return sortSubKey === columnKey ? (\n sortSubOrder === \"asc\" ? (\n <SortButton $sortColor=\"white\" onClick={() => toggleSubSortOrder(columnKey)}>\n {column.title}{\" \"}\n <svg width=\"15\" height=\"10\" viewBox=\"0 0 15 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.2375 0.368774L7.5 6.09377L1.7625 0.368774L0 2.13127L7.5 9.63127L15 2.13127L13.2375 0.368774Z\" fill=\"white\" />\n </svg>\n </SortButton>\n ) : (\n <SortButton $sortColor=\"white\" onClick={() => toggleSubSortOrder(columnKey)}>\n {column.title}{\" \"}\n <svg width=\"15\" height=\"10\" viewBox=\"0 0 15 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.2375 9.2627L7.5 3.5377L1.7625 9.2627L0 7.5002L7.5 0.000196457L15 7.5002L13.2375 9.2627Z\" fill=\"white\" />\n </svg>\n </SortButton>\n )\n ) : (\n <SortButton $sortColor=\"white\" onClick={() => toggleSubSortOrder(columnKey)}>\n {column.title}{\" \"}\n <svg width=\"15\" height=\"10\" viewBox=\"0 0 15 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.2375 0.368774L7.5 6.09377L1.7625 0.368774L0 2.13127L7.5 9.63127L15 2.13127L13.2375 0.368774Z\" fill=\"white\" />\n </svg>\n </SortButton>\n );\n };\n\n const headers = HeadColumns.map((column) => {\n return <TableHeaderCell key={`HeaderCell-${column.key}`}>{renderSortButton(column, sortOrder, sortKey)}</TableHeaderCell>;\n });\n\n const SubDataHeaders = SubDataColumns.map((column, index) => {\n return <th key={`SubHeadCell-${index}`}>{renderSortSubButton(column, sortSubOrder, sortSubKey)}</th>;\n });\n\n const subDataRows = (itemId: number) => {\n return processedRowData\n .filter((item) => item.Details?.relationId === itemId)\n .map((item) => (\n <Fragment key={`SDR-${item.id}-${item.Details?.relationId}`}>\n {item.Details?.fileObjects.map((fileItem, index) => (\n <SubDataTableBodyRowContainer key={`${item}-${item.Details?.relationId}-${fileItem.id}-${index}`}>\n <td key={`td-${item.Details?.relationId}-${fileItem.id}`}>\n <DownloadArrow onClick={downloadArrowOnClick}>\n <svg width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.5 12L3.5 7L4.9 5.55L7.5 8.15V0H9.5V8.15L12.1 5.55L13.5 7L8.5 12ZM2.5 16C1.95 16 1.47917 15.8042 1.0875 15.4125C0.695833 15.0208 0.5 14.55 0.5 14V11H2.5V14H14.5V11H16.5V14C16.5 14.55 16.3042 15.0208 15.9125 15.4125C15.5208 15.8042 15.05 16 14.5 16H2.5Z\"\n fill=\"#1C1B1F\"\n />\n </svg>\n </DownloadArrow>\n </td>\n {SubDataColumns.map((column) => {\n const columnKey = trimBeforePeriod(column.key);\n const value = fileItem[columnKey];\n if (value !== undefined) {\n return (\n <SubDataTableCell key={`fileitem-${item}-${item.Details?.relationId}-${fileItem.id}-${index}-${column.title}`}>\n <span key={`span-${item.Details?.relationId}-${fileItem.id}-${index}-${column.title}`}>{value}</span>\n </SubDataTableCell>\n );\n }\n })}\n </SubDataTableBodyRowContainer>\n ))}\n </Fragment>\n ));\n };\n\n const dataRows = processedRowData?.map((item, index) => (\n <BodyRowContainer key={`Bodycontainer-${item.id}-${index}`}>\n <TableRow $amountofColumns={HeadColumns.length}>\n {HeadColumns.map((column) => (\n <TableBodyCell key={`TableBodycell-${item.id}-${column.key}`} $primaryBoldState={column.PrimaryBoldText}>\n {item[column.key]}\n </TableBodyCell>\n ))}\n </TableRow>\n <ButtonStylingRow>\n <DownloadMissionButton onClick={downloadMissionOnClick}>Download Mission</DownloadMissionButton>\n <AddButton onClick={addFilesOnClick}>Add files</AddButton>\n </ButtonStylingRow>\n {openRow !== item.id && (\n <BottomArrowBar onClick={() => toggleDropdown(item.id)}>\n <svg width=\"92\" height=\"14\" viewBox=\"0 0 92 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M64 0L44 6L24 0H0L44 14L92 0H64Z\" fill=\"#7A7A7A\" />\n </svg>\n </BottomArrowBar>\n )}\n {openRow === item.id && (\n <div>\n <SubDataTable>\n <SubDataHeaderColumn>\n <SubDataTableHeaderRow>\n <th></th>\n {SubDataHeaders}\n </SubDataTableHeaderRow>\n </SubDataHeaderColumn>\n <SubDataTableBodyRow>{subDataRows(item.id)}</SubDataTableBodyRow>\n </SubDataTable>\n <BottomUpArrowBar onClick={() => toggleUpward()}>\n <svg width=\"92\" height=\"14\" viewBox=\"0 0 92 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M64 14L44 8L24 14H0L44 0L92 14H64Z\" fill=\"#7A7A7A\" />\n </svg>\n </BottomUpArrowBar>\n </div>\n )}\n </BodyRowContainer>\n ));\n\n return (\n <TableContainer>\n <TablePrimaryRow $amountofColumns={HeadColumns.length}>{headers}</TablePrimaryRow>\n <div title=\"tablebodies\">{dataRows}</div>\n </TableContainer>\n );\n};\n\nChildDataTable.displayName = \"ChildDataTable\";\n\nexport default ChildDataTable;\n","import { ReactElement, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\n\n//Subtable structure\ninterface Details {\n relationId: number;\n [key: string]: any;\n}\n\n//primary datatable strucutre\ninterface DataType {\n id: number;\n [key: string]: any;\n Details?: Details;\n}\n\ninterface ColumnProps<T> {\n key: string;\n title: string | ReactElement;\n subDataTableColumn: boolean;\n width?: string;\n editable?: boolean;\n render?: (column: ColumnProps<T>, item: T) => ReactElement;\n}\n\n//prop arguments for component\ntype Props<T> = {\n columns: Array<ColumnProps<T>>;\n data?: T[] | undefined;\n};\n\nconst TableStyle = styled.table`\n width: 100%;\n height: 100%;\n border-collapse: collapse;\n color: black;\n text-align: center;\n\n thead {\n background-color: black;\n color: white;\n }\n\n margin-left: auto;\n margin-right: auto;\n position: absolute;\n`;\n\nconst MainThHeaders = styled.th`\n &:not(:last-child) {\n border-right: 1px solid #c6c7cc;\n }\n`;\n\nconst SubDataTr = styled.tr`\n background-color: white;\n\n &:nth-child(even) {\n background-color: #e0ffff;\n }\n`;\n\nconst PrimaryTrRows = styled.tr<{ $index: number }>`\n background-color: ${(props) => (props.$index % 2 === 0 ? \"white\" : \"#e0ffff\")};\n`;\n\nconst SubTrRows = styled.tr<{ $index: number }>`\n background-color: ${(props) => (props.$index % 2 === 0 ? \"white\" : \"#e0ffff\")};\n height: 120px;\n`;\n\nconst SubTableStyle = styled.table`\n width: 95%;\n border-collapse: collapse;\n margin-top: -15px;\n margin-left: auto;\n margin-right: auto;\n\n td {\n &:not(:last-child) {\n border-right: 1px solid black;\n }\n }\n\n th {\n background-color: #065465;\n &:not(:last-child) {\n border-right: 1px solid #c6c7cc;\n }\n }\n`;\n\nconst DropdownButton = styled.button`\n background-color: transparent;\n background-repeat: no-repeat;\n border: none;\n cursor: pointer;\n overflow: hidden;\n outline: none;\n font-weight: bold; /* This makes the UTF symbols bold */\n font-size: 20px;\n`;\n\nconst PrimaryTdSpan = styled.td`\n &:not(:last-child) {\n border-right: 1px solid black;\n }\n`;\n\nfunction trimBeforePeriod(text: string): string {\n const index = text.indexOf(\".\");\n return index === -1 ? text : text.substring(index + 1);\n}\n\nexport const NestedDataTable = <T extends DataType>({ data, columns }: Props<T>) => {\n const HeadColumns = columns.filter((col) => col.subDataTableColumn === false);\n const SubDataColumns = columns.filter((col) => col.subDataTableColumn === true);\n\n const [isOpen, setIsOpen] = useState(false); //Dropdown logic\n const [isAscending, setIsAscending] = useState(false); //logic for arrow\n const [primaryRowIndex, setPrimaryRowIndex] = useState<number | null>(null);\n\n const toggleDropdown = (rowIndex: number) => {\n setIsOpen(!isOpen);\n setIsAscending(!isAscending);\n setPrimaryRowIndex(rowIndex);\n };\n\n // ----------Main Headers------------ //\n const headers = HeadColumns.map((column, index) => {\n return <MainThHeaders key={`headCell-${index}`}>{column.title}</MainThHeaders>;\n });\n\n const SubDataHeaders = SubDataColumns.map((column, index) => {\n return <th key={`SubHeadCell-${index}`}>{column.title}</th>;\n });\n\n // ----------Rows of Sub DataTable------------ //\n const subDataRows = !data?.length ? (\n <tr>\n <td title={\"NoSubDataRows\"} colSpan={columns.length}>\n No data\n </td>\n </tr>\n ) : (\n data.map((item, index) => (\n <>\n <SubDataTr key={`Sub-${item.id}-${index}`}>\n {SubDataColumns.map((column, colIndex) => {\n const columnKey = trimBeforePeriod(column.key);\n const value = item.Details?.[columnKey];\n console.log(\"value: \", value);\n if (value !== undefined) {\n return (\n <td key={`Span-${item.id}-${colIndex}`}>\n <span>{value}</span>\n </td>\n );\n }\n })}\n </SubDataTr>\n </>\n ))\n );\n\n // ----------Subtable ------------ //\n const childRows = (\n <SubTableStyle>\n <thead>\n <tr>{SubDataHeaders}</tr>\n </thead>\n <tbody>{subDataRows}</tbody>\n </SubTableStyle>\n );\n\n const rows = !data?.length ? (\n <tr>\n <td title={\"NoDataRows\"} colSpan={columns.length}>\n No data\n </td>\n </tr>\n ) : (\n data?.map((item, index) => (\n <>\n <PrimaryTrRows key={index} $index={index}>\n <DropdownButton onClick={() => toggleDropdown(index)}>{isAscending && isOpen && primaryRowIndex === index ? <>&#8743;</> : <>&#8744;</>}</DropdownButton>\n {HeadColumns.map((column, index2) => {\n return (\n <PrimaryTdSpan key={`${item.id}-${index}=${index2}`}>\n <span title={`spanRow-${item.id}-${column.key}-${index2}`}>{item[column.key]}</span>\n </PrimaryTdSpan>\n );\n })}\n </PrimaryTrRows>\n {isOpen && primaryRowIndex === index && (\n <SubTrRows key={index} $index={index}>\n <td colSpan={HeadColumns.length + 1}>{childRows}</td>\n </SubTrRows>\n )}\n </>\n ))\n );\n\n return (\n <div>\n <TableStyle>\n <thead>\n <tr>\n <th title=\"dropdownth\"></th>\n {headers}\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </TableStyle>\n </div>\n );\n};\n\nNestedDataTable.displayName = \"NestedDataTable\";\n\nexport default NestedDataTable;\n","import { ChangeEvent, useEffect, useRef, useState, KeyboardEvent } from \"react\";\nimport styled from \"styled-components\";\n\ninterface AutocompleteProps {\n data: string[]; //must somehow make this an array filled a requirement\n floatLabel: string;\n onDataChange?: (data: string) => void;\n height?: string;\n width?: string;\n inputBorderStyle?: string;\n inputFocusBorderColor?: string;\n autoBackGroundColor?: string;\n labelColor?: string;\n FocusedlabelColor?: string;\n id?: string;\n name?: string;\n}\n\nconst AutoContainer = styled.div<{ $inputwidth?: string; $inputheight?: string }>`\n //position: relative;\n position: relative;\n width: ${(props) => props.$inputwidth || \"320px\"};\n height: ${(props) => props.$inputheight || \"51px\"};\n`;\n\nconst InputWrapper = styled.div<{ $inputwidth?: string; $inputheight?: string }>`\n width: 100%;\n height: 100%;\n`;\n\nconst Label = styled.label`\n position: absolute;\n top: 50%;\n left: 10px;\n transform: translateY(-50%);\n font-size: 16px;\n pointer-events: none;\n transition: 0.3s ease all;\n z-index: 2;\n padding: 0 5px;\n background-color: transparent;\n`;\n\nconst Input = styled.input<{\n $primary?: string;\n $inputBorderStyling?: string;\n $focusBorderColor?: string;\n autoBackGroundColor?: string;\n $suggestBoolean: boolean;\n $dropDownVisible: boolean;\n $focusedLabelColor?: string;\n $defaultLabelColor?: string;\n}>`\n width: 100%; //this must be 100%, as width inherit inherits the litaral experession, not the value\n height: 100%;\n padding: 0.5rem 0.75rem;\n border: ${(props) => props.$inputBorderStyling || \"2px solid #ccc\"};\n border-radius: 4px;\n box-sizing: border-box;\n z-index: 1;\n background-color: ${(props) => (props.$primary !== null ? props.$primary : \"#FFFFFF\")};\n\n &:focus {\n border-color: ${(props) => {\n const { $focusBorderColor, $dropDownVisible, $suggestBoolean } = props;\n if (!$focusBorderColor) return \"#4a90e2\";\n if (!$dropDownVisible) return $focusBorderColor;\n if (!$suggestBoolean) return \"#FF0000\";\n return $focusBorderColor;\n }};\n outline: none;\n background-color: ${(props) => (props.$primary !== null ? props.$primary : \"#FFFFFF\")};\n }\n\n &:focus + ${Label}, &:not(:placeholder-shown) + ${Label} {\n top: 0;\n left: 10px;\n\n padding: 0 5px;\n color: ${(props) => {\n const { $focusedLabelColor, $dropDownVisible, $suggestBoolean } = props;\n if (!$focusedLabelColor) return \"#4a90e2\";\n if (!$dropDownVisible) return $focusedLabelColor;\n if (!$suggestBoolean) return \"#FF0000\";\n return $focusedLabelColor;\n }};\n transform: translate(0%, -50%) scale(0.8);\n background: linear-gradient(to bottom, transparent 50%, ${(props) => (props.$primary ? props.$primary : \"#FFFFFF\")} 0%);\n }\n\n &:not(:focus) + ${Label} {\n color: ${(props) => props.$defaultLabelColor || \"#ccc\"};\n }\n`;\n\nconst DropDownList = styled.ul<{ $inputwidth?: string }>`\n position: absolute;\n z-index: 5;\n width: 100%;\n background-color: white;\n border: 1px solid #ccc;\n margin-top: 0px;\n color: black;\n list-style: none;\n padding: 0;\n border-radius: 8px;\n overflow: scroll; //neccesary for limiting scroll options\n max-height: 390px; //neccesary for limiting scroll options, limit to 10 per view\n`;\n\nconst ActiveListItem = styled.li<{ $highlighted: boolean }>`\n position: relative;\n width: 100%;\n z-index: 9999;\n padding: 10px;\n border-radius: 8px;\n background-color: ${(props) => (props.$highlighted ? \"#eee\" : \"white\")};\n cursor: pointer;\n\n &:hover {\n background-color: #f0f0f0;\n }\n\n &:active {\n background-color: #d8d8d8;\n }\n`;\n\nconst NoHoverListItem = styled.li`\n position: relative;\n z-index: 9999;\n padding: 10px;\n cursor: pointer;\n background-color: white;\n color: #d8d8d8;\n border-radius: 8px;\n\n &:hover {\n background-color: white;\n }\n\n &:active {\n background-color: white;\n }\n`;\n\nexport const WLAutoComplete = ({\n floatLabel,\n data,\n height,\n width,\n inputBorderStyle,\n inputFocusBorderColor,\n onDataChange,\n autoBackGroundColor,\n labelColor,\n FocusedlabelColor,\n id,\n name,\n}: AutocompleteProps) => {\n const inputRef = useRef<HTMLInputElement>(null); //html input ref\n const listRef = useRef<HTMLUListElement>(null); //html list ref for data\n const noItemListRef = useRef<HTMLLIElement>(null); //for no item\n\n const [inputValue, setInputValue] = useState(\"\"); //for handling event changes\n const [suggestions, setSuggestions] = useState<string[]>([]); // for storing data array object suggestions\n const [isDropdownVisible, setIsDropdownVisible] = useState(false);\n const suggestHasItems: boolean = suggestions.length > 0; //for suggestions\n const arrayLength: number = suggestions.length;\n\n const [focusedIndex, setFocusedIndex] = useState<number>(0);\n\n const idName = id ? id : \"WlAutoComp\";\n\n useEffect(() => {\n const handleClickOutsideList = (event: MouseEvent) => {\n if (listRef.current && !listRef.current.contains(event.target as Node)) {\n setIsDropdownVisible(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutsideList);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutsideList);\n };\n }, [focusedIndex]);\n\n const handleBlur = () => {\n const exactMatch = data.find((item) => item === inputValue);\n if (inputRef.current && inputValue === \"\") {\n inputRef.current.blur();\n } else if (inputRef.current && exactMatch === undefined) {\n inputRef.current.blur();\n setInputValue(\"\");\n }\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n setInputValue(value);\n\n if (value.length > 0) {\n const filtered = data.filter((option) => option.toLowerCase().includes(value.toLowerCase()));\n if (filtered.length > 0) {\n setSuggestions(filtered);\n setIsDropdownVisible(true);\n } else {\n setSuggestions([]);\n setIsDropdownVisible(true);\n }\n } else {\n setIsDropdownVisible(false);\n }\n };\n\n const handleInputClick = () => {\n setSuggestions(data);\n setIsDropdownVisible(true);\n };\n\n const handleListClick = (suggestValue: string) => {\n setInputValue(suggestValue);\n setIsDropdownVisible(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n const testMove = focusedIndex + 1;\n switch (event.key) {\n case \"Enter\":\n if (isDropdownVisible) {\n setInputValue(suggestions[focusedIndex]);\n setIsDropdownVisible(false);\n } else {\n if (data.includes(inputValue)) {\n //if there is an input that matches the data suggestions\n if (onDataChange !== undefined) onDataChange(inputValue);\n } else {\n handleBlur;\n }\n }\n break;\n case \"ArrowUp\":\n event.preventDefault();\n setFocusedIndex((prevIndex) => Math.max(prevIndex - 1, 0));\n if (listRef.current && focusedIndex < arrayLength - 9) {\n listRef.current.scrollTop -= 40;\n }\n break;\n case \"ArrowDown\":\n event.preventDefault();\n setFocusedIndex((prevIndex) => Math.min(prevIndex + 1, suggestions.length - 1));\n if (listRef.current && testMove > 9) {\n listRef.current.scrollTop += 40;\n }\n break;\n }\n };\n\n return (\n <>\n <AutoContainer $inputheight={height} $inputwidth={width}>\n <InputWrapper id={`${idName}-inputwrapper`} $inputheight={height} $inputwidth={width}>\n <Input\n id={idName}\n name={name}\n data-testid=\"InputSearchBar\"\n type=\"text\"\n $primary={autoBackGroundColor}\n $inputBorderStyling={inputBorderStyle}\n $focusBorderColor={inputFocusBorderColor}\n $suggestBoolean={suggestHasItems}\n $dropDownVisible={isDropdownVisible}\n $focusedLabelColor={FocusedlabelColor}\n $defaultLabelColor={labelColor}\n value={inputValue}\n ref={inputRef}\n onClick={handleInputClick}\n onInput={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n placeholder=\"\"\n autoComplete=\"off\"\n />\n <Label id={`${idName}-label`} htmlFor={idName}>\n {floatLabel}\n </Label>\n </InputWrapper>\n {isDropdownVisible && (\n <DropDownList id={`${idName}-droplist`} ref={listRef} $inputwidth={width} data-testid=\"InputSearchOptionsList\">\n {suggestHasItems ? ( //suggestions length controls showing the suggestions\n suggestions.map((item, index) => (\n <ActiveListItem\n data-testid={`${idName}-inputSearchList-${index + 1}`}\n id={`${idName}-activelistemitem-${index + 1}`}\n key={`ActivelistItem-${item}-${index}`}\n $highlighted={index === focusedIndex ? true : false}\n onMouseDown={(e) => e.preventDefault()}\n onMouseOver={() => setFocusedIndex(index)}\n onClick={() => handleListClick(item)}\n >\n {item}\n </ActiveListItem>\n ))\n ) : (\n <NoHoverListItem data-testid=\"NoOptionsListitem\" ref={noItemListRef} id=\"No-Option-List-item\" onMouseDown={(e) => e.preventDefault()}>\n No Options found\n </NoHoverListItem>\n )}\n </DropDownList>\n )}\n </AutoContainer>\n </>\n );\n};\n\nWLAutoComplete.displayName = \"WLAutoComplete\";\n\nexport default WLAutoComplete;\n","import { useEffect, useRef } from \"react\";\nimport \"../../web-components/input-datepicker\";\n\nexport const WLInputDatePicker: React.FC = () => {\n const ref = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (!ref.current) return;\n\n const el = ref.current;\n if (!el) return;\n }, []);\n\n return <wavelength-input-date-picker ref={ref} />;\n};\n\nWLInputDatePicker.displayName = \"WLInputDatePicker\";\n\nexport default WLInputDatePicker;\n\n// import React, { useRef, useEffect } from \"react\";\n// import \"../../web-components/sample-component\"; // <-- Adjust this import path as needed\n\n// interface SampleComponentProps extends React.HTMLAttributes<HTMLElement> {\n// testProp?: string; // <-- Add more props as your web component supports them\n// }\n\n// export const SampleComponent: React.FC<SampleComponentProps> = ({\n// testProp,\n// children,\n// ...rest // This rest operator includes className, style, onClick, etc.\n// }) => {\n// const ref = useRef<HTMLElement>(null);\n\n// useEffect(() => {\n// const el = ref.current;\n// if (!el) return;\n\n// // Dynamically assign props to the Web Component\n// if (testProp !== undefined) {\n// el.setAttribute(\"test-prop\", testProp);\n// }\n\n// //////////////////////////////////////////////////////////////////////\n// // TODO: Add more attribute bindings here as your component evolves //\n// //////////////////////////////////////////////////////////////////////\n// }, [testProp]);\n\n// // This is where the Web Component is placed; You'll use the below props in-place of your components props\n// return (\n// <sample-component ref={ref} {...rest}>\n// {children}\n// </sample-component>\n// );\n// };\n\n// export default SampleComponent;\n","const InputDatePickerTemplate = document.createElement(\"template\");\nInputDatePickerTemplate.innerHTML = `\n<input\n type=\"date\"\n id=\"start\"\n class=\"datepickerinput\"\n value=\"2018-07-22\"\n min=\"2018-01-01\"\n max=\"2018-12-31\" />\n`;\nexport class WLInputDatePicker extends HTMLElement {\n private inputDatePicker: HTMLInputElement;\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: \"open\" });\n shadow.appendChild(InputDatePickerTemplate.content.cloneNode(true));\n this.inputDatePicker = shadow.querySelector(\".datepickerinput\")!;\n }\n\n connectedCallback() {\n this.updateInput();\n }\n\n attributeChangedCallback() {\n this.updateInput();\n }\n\n updateInput() {\n const fontSize = this.getAttribute(\"font-size\") || \"0.875rem\";\n this.inputDatePicker.style.fontSize = fontSize;\n }\n}\n\ncustomElements.define(\"wavelength-input-date-picker\", WLInputDatePicker);\n","import { ChangeEvent, useEffect, useRef, useState, KeyboardEvent } from \"react\";\nimport styled from \"styled-components\";\n//onDataChange: (data: string) => void;\ntype timeVariant = \"date\" | \"datetime-local\" | \"\";\n\ninterface DateInputProps {\n floatLabel: string;\n OnDataChange?: (data: Date) => void;\n height?: string;\n width?: string;\n min?: string; //\"YYYY-MM-DD\"\n max?: string; //\"YYYY-MM-DD\"\n inputTimeType: timeVariant;\n labelColor?: string;\n inputBorderStyle?: string;\n inputFocusBorderColor?: string;\n backgroundColor?: string;\n FocusLabelColor?: string;\n id?: string;\n name?: string;\n}\n\nconst Label = styled.label`\n position: absolute;\n top: 50%;\n left: 10px;\n transform: translateY(-50%);\n font-size: 16px;\n pointer-events: none;\n transition: 0.3s ease all;\n z-index: 999;\n padding: 0 5px;\n background-color: transparent;\n`;\n\nconst InputWrapper = styled.div<{\n $inputwidth?: string;\n $inputheight?: string;\n $inputBorderStyling?: string;\n $inputBackGroundColor?: string;\n $inputFocusBorderColor?: string;\n $labelColor?: string;\n $FocusLabelColor?: string;\n}>`\n position: relative;\n width: ${(props) => props.$inputwidth || \"320px\"};\n height: ${(props) => props.$inputheight || \"51px\"};\n\n input {\n width: 100%;\n height: 100%;\n padding: 0.5rem 0.75rem;\n border: ${(props) => props.$inputBorderStyling || \"2px solid #ccc\"}; //works\n border-radius: 4px;\n box-sizing: border-box;\n z-index: 1;\n background-color: ${(props) => (props.$inputBackGroundColor !== null ? props.$inputBackGroundColor : \"#FFFFFF\")}; //this works\n\n &:focus {\n border-color: ${(props) => (props.$inputFocusBorderColor !== null ? props.$inputFocusBorderColor : \"#4a90e2\")};\n outline: none;\n background-color: ${(props) => (props.$inputBackGroundColor !== null ? props.$inputBackGroundColor : \"#FFFFFF\")};\n }\n\n &:focus + ${Label}, &:not(:placeholder-shown) + ${Label} {\n top: 0;\n left: 10px;\n\n padding: 0 5px;\n color: ${(props) => props.$FocusLabelColor || \"#4a90e2\"};\n transform: translate(0%, -50%) scale(0.8);\n background: linear-gradient(to bottom, transparent 50%, ${(props) => (props.$inputBackGroundColor ? props.$inputBackGroundColor : \"#FFFFFF\")} 0%);\n }\n\n &:not(:focus) + ${Label} {\n color: ${(props) => props.$labelColor || \"#ccc\"};\n }\n }\n`;\n\n//nneeds to transform based on height of element\nexport const WLDatePicker = ({\n id,\n name,\n inputBorderStyle,\n floatLabel,\n labelColor,\n inputFocusBorderColor,\n FocusLabelColor,\n backgroundColor,\n height,\n width,\n min,\n max,\n inputTimeType,\n OnDataChange,\n}: DateInputProps) => {\n const [inputType, setInputType] = useState(\"\");\n const [value, setValue] = useState(\"\");\n const [minAdjusted, setMinAdjusted] = useState(\"\");\n const [maxAdjusted, setMaxAdjusted] = useState(\"\");\n\n const idName = id ? id : \"WlDatePick\";\n\n useEffect(() => {\n const minDate = new Date(min || \"\");\n const maxDate = new Date(max || \"\");\n\n if (inputTimeType === \"datetime-local\") {\n if (min !== undefined && max !== undefined) {\n const minCorrect = minDate.toISOString().slice(0, 16);\n const maxCorrect = maxDate.toISOString().slice(0, 16);\n setMinAdjusted(minCorrect || \"\");\n setMaxAdjusted(maxCorrect || \"\");\n } else if (min !== undefined) {\n //if min is defined but max is not defined\n const minCorrect = minDate.toISOString().slice(0, 16);\n setMinAdjusted(minCorrect || \"\");\n setMaxAdjusted(\"\");\n } else if (max !== undefined) {\n const maxCorrect = maxDate.toISOString().slice(0, 16);\n setMaxAdjusted(maxCorrect || \"\");\n setMinAdjusted(\"\");\n } else {\n setMinAdjusted(\"\");\n setMaxAdjusted(\"\");\n }\n } else if (inputTimeType === \"date\") {\n setMinAdjusted(min || \"\");\n setMaxAdjusted(max || \"\");\n }\n });\n\n const handleFocus = () => {\n setInputType(inputTimeType ?? \"date\");\n };\n\n const handleBlur = () => {\n if (!value) {\n setInputType(\"\");\n }\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const dateString = e.target.value;\n setValue(dateString);\n if (OnDataChange !== undefined) OnDataChange(new Date(dateString));\n };\n\n return (\n <InputWrapper\n id={`${idName}-inputWrapper`}\n $inputBorderStyling={inputBorderStyle}\n $inputwidth={width}\n $inputheight={height}\n $inputFocusBorderColor={inputFocusBorderColor}\n $labelColor={labelColor}\n $FocusLabelColor={FocusLabelColor}\n $inputBackGroundColor={backgroundColor}\n >\n <input\n type={inputType}\n id={idName}\n name={name}\n data-testid=\"my_wl_date_input\"\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n //onKeyDown={handleKeyDown}\n value={value}\n placeholder=\" \" // Use an empty placeholder for styling purposes\n min={minAdjusted}\n max={maxAdjusted}\n />\n <Label id={`${idName}-label`} htmlFor={idName}>\n {floatLabel}\n </Label>\n </InputWrapper>\n );\n};\n\nWLDatePicker.displayName = \"WLDatePicker\";\n\nexport default WLDatePicker;\n","import React, { useRef, useEffect } from \"react\";\nimport \"../../web-components/sample-component\"; // <-- Adjust this import path as needed\n\ninterface SampleComponentProps extends React.HTMLAttributes<HTMLElement> {\n testProp?: string; // <-- Add more props as your web component supports them\n}\n\nexport const SampleComponent: React.FC<SampleComponentProps> = ({\n testProp,\n children,\n ...rest // This rest operator includes className, style, onClick, etc.\n}) => {\n const ref = useRef<HTMLElement>(null);\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n\n // Dynamically assign props to the Web Component\n if (testProp !== undefined) {\n el.setAttribute(\"test-prop\", testProp);\n }\n\n //////////////////////////////////////////////////////////////////////\n // TODO: Add more attribute bindings here as your component evolves //\n //////////////////////////////////////////////////////////////////////\n }, [testProp]);\n\n // This is where the Web Component is placed; You'll use the below props in-place of your components props\n return (\n <sample-component ref={ref} {...rest}>\n {children}\n </sample-component>\n );\n};\n\n// This line ensures that the \"show code\" portion of this component's story in Storybook is named properly\nSampleComponent.displayName = \"SampleComponent\";\n\nexport default SampleComponent;\n"],"mappings":"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","names":["ForwardRef","Fragment","Memo","values","isValidElement","i","checker","require_react_is_development","require_react_is","style","palette","margin","padding","borderRadius","width","height","hex","color","shape","initializer","values","array","shape","Class","config","padding","issue","error","inst","checks","checkResult","canary","result","result","r","shape","isObject","allowsEval","results","left","right","values","output","result","result","right","left","r","Class","Class","Class","issue","initializer","issue","issues","parse","parseAsync","safeParse","safeParseAsync","def","parse","safeParse","parseAsync","safeParseAsync","values","issue","output","values","css","template","width","height","template","isEmpty","borderColor","width","border","wrapper","style","WavelengthButton","height","width","margin","padding","borderRadius","style","isCustomProperty","isProcessableValue","processStyleValue","keyframes","cached","style","React","isPlainObject","values","PropTypes","merge","style","transform","memoize","memoize","style","transform","spacing","style","transform","union","config","transform","style","styleFunctionSx","css","_excluded","spacing","_excluded","_excluded2","_excluded3","style","isPlainObject","styled","React","jsx","width","height","Fragment","jsx","width","borderColor","Fragment","jsx","jsxs","WavelengthButton","styled","jsxs","Button","jsx","width","height","palette","jsx","width","height","bgcolor","palette","jsx","jsxs","width","height","palette","TextField","useRef","Autocomplete","styled","Fragment","jsx","width","height","borderRadius","borderColor","backgroundColor","palette","options","TextField","styled","TextField","jsx","palette","WavelengthSearchTextField","styled","Fragment","jsx","jsxs","width","height","Fragment","jsx","jsxs","backgroundColor","WavelengthButton","React","useState","ListItem","jsx","jsxs","width","height","useState","palette","React","Fragment","jsx","jsxs","color","Fragment","jsx","jsxs","jsx","jsxs","width","height","border","backgroundColor","useRef","useEffect","jsx","WavelengthProgressBar","width","height","useRef","useEffect","useState","IconButton","jsx","jsxs","Fragment","jsx","jsxs","height","width","backgroundColor","jsx","jsxs","height","width","IconButton","jsx","jsxs","width","height","backgroundColor","Typography","Grid","Fragment","jsx","jsxs","React","useEffect","useRef","jsx","style","shape","WavelengthForm","useEffect","useRef","jsx","WavelengthTitleBar","useRef","useEffect","useEffect","useRef","jsx","WavelengthBanner","useRef","useEffect","jsx","jsxs","width","height","Grid","jsx","jsxs","color","palette","opacity","Grid","jsx","jsxs","color","palette","Grid","Box","jsx","jsxs","Button","Typography","IconButton","Box","jsx","jsxs","React","Box","styled","IconButton","Divider","Fragment","jsx","jsxs","width","color","border","transform","React","styled","Fragment","jsx","jsxs","width","palette","React","MenuItem","styled","WavelengthButton","CloseIcon","IconButton","jsx","jsxs","width","palette","Snackbar","SnackbarContent","jsx","jsxs","width","Box","Button","useEffect","useRef","Fragment","jsx","jsxs","width","Box","jsx","width","color","useState","IconButton","Typography","Grid","jsx","jsxs","useState","useEffect","Grid","Card","CardContent","CardMedia","CardActionArea","jsx","jsxs","useState","useState","Button","styled","jsx","jsxs","item","useState","Button","ArrowBackIosNewIcon","ArrowForwardIosIcon","styled","jsx","jsxs","MyDroplistItems","item","jsx","style","useState","useRef","useEffect","useImperativeHandle","jsx","WavelengthInput","required","width","height","padding","borderRadius","backgroundColor","borderColor","style","useEffect","useRef","useState","styled","jsx","jsxs","styled","useState","useRef","useEffect","editedValue","useMemo","useState","Fragment","styled","jsx","jsxs","trimBeforePeriod","sortOrder","sortKey","sortSubOrder","sortSubKey","useState","styled","Fragment","jsx","jsxs","useEffect","useRef","useState","styled","Fragment","jsx","jsxs","height","width","useEffect","useRef","jsx","WLInputDatePicker","useRef","useEffect","useEffect","useState","styled","jsx","jsxs","Label","InputWrapper","backgroundColor","height","width","useRef","useEffect","jsx","SampleComponent","useRef","useEffect"]}