{"version":3,"sources":["webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/redux-devtools-extension/index.js","webpack:///./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack:///./node_modules/react-use/esm/useLockBodyScroll.js","webpack:///./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack:///./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack:///./node_modules/react-use/esm/misc/util.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack:///./node_modules/querystring-es3/decode.js"],"names":["stringifyPrimitive","v","isFinite","module","exports","obj","sep","eq","name","undefined","map","objectKeys","k","ks","encodeURIComponent","isArray","join","Array","xs","Object","prototype","toString","call","f","res","i","length","push","keys","key","hasOwnProperty","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","concat","targetStatics","sourceStatics","descriptor","e","compose","__esModule","composeWithDevTools","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","apply","devToolsEnhancer","__REDUX_DEVTOOLS_EXTENSION__","noop","useForceUpdate","isMounted","useIsMounted","_a","__read","useState","forcedRenderCount","setForcedRenderCount","forceRender","useCallback","current","sync","postRender","getClosestBody","el","tagName","document_1","contentDocument","body","offsetParent","preventDefault","rawEvent","event","touches","isIosDevice","navigator","platform","test","bodies","Map","doc","document","documentListenerAdded","locked","elementRef","bodyRef","unlock","bodyInfo","get","counter","delete","ontouchmove","style","overflow","initialOverflow","set","passive","lock","_locked","_elementRef","PresenceChild","children","initial","isPresent","onExitComplete","custom","presenceAffectsLayout","presenceChildren","useConstant","newChildrenMap","id","useId","context","useMemo","childId","e_1","_b","__values","values","_c","next","done","value","e_1_1","error","return","register","forEach","_","React","size","PresenceContext","Provider","getChildKey","child","AnimatePresence","exitBeforeEnter","forceRenderLayoutGroup","useContext","LayoutGroupContext","filteredChildren","filtered","Children","isValidElement","onlyElements","childrenToRender","exiting","Set","presentChildren","useRef","allChildren","isInitialRender","useIsomorphicLayoutEffect","updateChildLookup","useUnmountEffect","clear","__spreadArray","presentKeys","targetKeys","numPresent","indexOf","add","insertionIndex","splice","removeIndex","findIndex","presentChild","has","env","console","warn","cloneElement","on","args","_i","addEventListener","off","removeEventListener","isBrowser","decode","parse","encode","stringify","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","prop","qs","options","regexp","split","maxKeys","len","kstr","vstr","x","replace","idx","substr","decodeURIComponent"],"mappings":"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","file":"vendors~SiteHeader-dab81fdf636035aab1e2.js","sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\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","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nvar compose = require('redux').compose;\n\nexports.__esModule = true;\nexports.composeWithDevTools =\n typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n : function () {\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, arguments);\n };\n\nexports.devToolsEnhancer =\n typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__\n : function () {\n return function (noop) {\n return noop;\n };\n };\n","import { __read } from 'tslib';\nimport sync from 'framesync';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = useCallback(function () {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n var deferredForceRender = useCallback(function () { return sync.postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect, useRef } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nexport function getClosestBody(el) {\n if (!el) {\n return null;\n }\n else if (el.tagName === 'BODY') {\n return el;\n }\n else if (el.tagName === 'IFRAME') {\n var document_1 = el.contentDocument;\n return document_1 ? document_1.body : null;\n }\n else if (!el.offsetParent) {\n return null;\n }\n return getClosestBody(el.offsetParent);\n}\nfunction preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nvar isIosDevice = isBrowser &&\n window.navigator &&\n window.navigator.platform &&\n /iP(ad|hone|od)/.test(window.navigator.platform);\nvar bodies = new Map();\nvar doc = typeof document === 'object' ? document : undefined;\nvar documentListenerAdded = false;\nexport default !doc\n ? function useLockBodyMock(_locked, _elementRef) {\n if (_locked === void 0) { _locked = true; }\n }\n : function useLockBody(locked, elementRef) {\n if (locked === void 0) { locked = true; }\n var bodyRef = useRef(doc.body);\n elementRef = elementRef || bodyRef;\n var lock = function (body) {\n var bodyInfo = bodies.get(body);\n if (!bodyInfo) {\n bodies.set(body, { counter: 1, initialOverflow: body.style.overflow });\n if (isIosDevice) {\n if (!documentListenerAdded) {\n on(document, 'touchmove', preventDefault, { passive: false });\n documentListenerAdded = true;\n }\n }\n else {\n body.style.overflow = 'hidden';\n }\n }\n else {\n bodies.set(body, {\n counter: bodyInfo.counter + 1,\n initialOverflow: bodyInfo.initialOverflow,\n });\n }\n };\n var unlock = function (body) {\n var bodyInfo = bodies.get(body);\n if (bodyInfo) {\n if (bodyInfo.counter === 1) {\n bodies.delete(body);\n if (isIosDevice) {\n body.ontouchmove = null;\n if (documentListenerAdded) {\n off(document, 'touchmove', preventDefault);\n documentListenerAdded = false;\n }\n }\n else {\n body.style.overflow = bodyInfo.initialOverflow;\n }\n }\n else {\n bodies.set(body, {\n counter: bodyInfo.counter - 1,\n initialOverflow: bodyInfo.initialOverflow,\n });\n }\n }\n };\n useEffect(function () {\n var body = getClosestBody(elementRef.current);\n if (!body) {\n return;\n }\n if (locked) {\n lock(body);\n }\n else {\n unlock(body);\n }\n }, [locked, elementRef.current]);\n // clean up, on un-mount\n useEffect(function () {\n var body = getClosestBody(elementRef.current);\n if (!body) {\n return;\n }\n return function () {\n unlock(body);\n };\n }, []);\n };\n","import { __values } from 'tslib';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\nvar PresenceChild = function (_a) {\n var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useId();\n var context = useMemo(function () { return ({\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function (childId) {\n var e_1, _a;\n presenceChildren.set(childId, true);\n try {\n for (var _b = __values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var isComplete = _c.value;\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();\n },\n register: function (childId) {\n presenceChildren.set(childId, false);\n return function () { return presenceChildren.delete(childId); };\n },\n }); }, \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(function () {\n presenceChildren.forEach(function (_, key) { return presenceChildren.set(key, false); });\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(function () {\n !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n }, [isPresent]);\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { __read, __spreadArray } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { env } from '../../utils/process.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\n\nvar getChildKey = function (child) { return child.key || \"\"; };\nfunction updateChildLookup(children, allChildren) {\n children.forEach(function (child) {\n var key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n var filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, function (child) {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n var _d = __read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n var presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n var isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = __spreadArray([], __read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (env !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\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 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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n var isMounted = useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n"],"sourceRoot":""}