{"version":3,"sources":["webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/gatsby-react-router-scroll/session-storage.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./node_modules/@theme-ui/core/dist/index.esm.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js","webpack:///./node_modules/@emotion/styled/dist/styled.browser.esm.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/process/browser.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///./node_modules/@theme-ui/color-modes/dist/index.esm.js","webpack:///./node_modules/@mdx-js/react/dist/esm.js","webpack:///./node_modules/@theme-ui/mdx/dist/index.esm.js","webpack:///./node_modules/@theme-ui/theme-provider/dist/index.esm.js","webpack:///./node_modules/maker-ui/dist/index.esm.js","webpack:///./src/config/menus.js","webpack:///./src/config/options.js","webpack:///./src/config/theme.js","webpack:///./src/components/layout.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack:///./gatsby-browser.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./node_modules/@emotion/serialize/dist/serialize.browser.esm.js","webpack:///./.cache/register-service-worker.js","webpack:///./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/@emotion/utils/dist/utils.browser.esm.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./.cache/route-announcer-props.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/@theme-ui/css/dist/index.esm.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/loader.js","webpack:///./node_modules/gatsby-plugin-layout/gatsby-browser.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-container.js","webpack:///./node_modules/@styled-system/core/dist/index.esm.js","webpack:///./node_modules/@styled-system/layout/dist/index.esm.js","webpack:///./node_modules/@styled-system/color/dist/index.esm.js","webpack:///./node_modules/@styled-system/typography/dist/index.esm.js","webpack:///./node_modules/@styled-system/flexbox/dist/index.esm.js","webpack:///./node_modules/@styled-system/grid/dist/index.esm.js","webpack:///./node_modules/@styled-system/border/dist/index.esm.js","webpack:///./node_modules/@styled-system/background/dist/index.esm.js","webpack:///./node_modules/@styled-system/position/dist/index.esm.js","webpack:///./node_modules/@styled-system/space/dist/index.esm.js","webpack:///./node_modules/@styled-system/shadow/dist/index.esm.js","webpack:///./node_modules/@styled-system/css/dist/index.esm.js","webpack:///./node_modules/@styled-system/variant/dist/index.esm.js","webpack:///./node_modules/@styled-system/should-forward-prop/dist/index.esm.js","webpack:///./node_modules/styled-system/dist/index.esm.js","webpack:///./node_modules/@theme-ui/components/dist/index.esm.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/gatsby-plugin-google-analytics/gatsby-browser.js","webpack:///./node_modules/@emotion/sheet/dist/sheet.browser.esm.js","webpack:///./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack:///./node_modules/@emotion/cache/dist/cache.browser.esm.js","webpack:///./node_modules/@emotion/css/dist/css.browser.esm.js","webpack:///./node_modules/@emotion/core/dist/core.browser.esm.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./static/images/logos/icomm_logo.png","webpack:///./.cache/api-runner-browser.js","webpack:///./node_modules/gatsby-plugin-layout/wrap-page.js","webpack:///(webpack)/buildin/global.js"],"names":["_interopRequireDefault","exports","__esModule","withPrefix","withAssetPrefix","path","getGlobalPathPrefix","navigateTo","replace","push","navigate","default","_objectWithoutPropertiesLoose2","_extends2","_assertThisInitialized2","_inheritsLoose2","_propTypes","_react","_router","_utils","_parsePath","parsePath","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","slice","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLink","_React$Component","props","_this","call","this","defaultGetProps","_ref2","isPartiallyCurrent","isCurrent","className","filter","Boolean","join","style","IOSupported","window","IntersectionObserver","state","handleRef","bind","_proto","prototype","componentDidUpdate","prevProps","prevState","to","___loader","enqueue","location","pathname","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","createElement","Location","_ref3","prefixedTo","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","options","___push","___replace","SessionStorage","read","key","stateKey","getStateKey","value","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","_typeof","_getRequireWildcardCache","WeakMap","cache","module","obj","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","desc","set","parseProps","next","css$$1","sx","css","theme","getCSS","jsx$1","type","children","len","arguments","length","apply","undefined","concat","Context","createContext","__EMOTION_VERSION__","useThemeUI","useContext","canUseSymbol","Symbol","for","REACT_ELEMENT","FORWARD_REF","isMergeableObject","n","$$typeof","arrayMerge","destinationArray","sourceArray","merge","a","b","all","args","BaseProvider","context","Provider","ThemeProvider","outer","assign","charAt","pathCache","Map","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","__BASE_PATH__","split","URL","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","map","matchPath","originalPath","pick","normalizePagePath","route","grabMatchParams","params","findPath","foundPath","useScrollRestoration","identifier","useLocation","_scrollHandler","ScrollContext","useRef","useLayoutEffect","position","scrollTo","onScroll","scrollTop","fn","arg","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","tag","charCodeAt","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","enumerable","_objectSpread","i","source","getOwnPropertyDescriptors","defineProperties","newStyled","createStyled","identifierName","shouldForwardProp","targetClassName","label","__emotion_forwardProp","propName","isReal","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","styles","__emotion_styles","raw","Styled","Consumer","finalTag","as","classInterpolations","mergedProps","registered","serialized","name","finalShouldForwardProp","newProps","_key","displayName","defaultProps","withComponent","nextTag","nextOptions","tagName","emitter","create","on","handler","off","splice","indexOf","emit","evt","mitt","iterator","constructor","_defineProperties","descriptor","configurable","writable","_defineProperty","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","done","err","_iterableToArrayLimit","TypeError","_nonIterableRest","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","document","MutationObserver","performance","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","FontAwesomeConfig","querySelector","attr","val","coerce","element","getAttribute","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","hooks","shims","namespace","functions","doScroll","test","readyState","listener","removeEventListener","asyncTimer","NOOP","isNode","global","process","asyncSetTimer","setImmediate","setTimeout","asyncQueue","asyncFlush","asyncCall","callback","invokeCallback","subscriber","owner","settled","_state","_data","promise","then","reject","handleThenable","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","promises","results","remaining","index","race","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","toUpperCase","insertBefore","nextUniqueId","id","Math","random","htmlEscape","str","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","inner","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","_params$icons","icons","main","mask","iconName","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","widthClass","ceil","attrClass","c","classes","content","role","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","noop$1","subject","initialValue","thisContext","result","d","bindInternal4","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","build","lookup","reducer","o","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","trim","joinAttributes","parseTransformString","transformString","toLowerCase","parts","first","parseFloat","isNaN","MissingIcon","error","message","stack","Error","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","cx","cy","r","values","opacity","asFoundIcon","vectorData","class","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","definitions","Library","Constructor","_classCallCheck","protoProps","staticProps","_len","additions","_pullDefinitions","definition","0","_normalized$key","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","ScrollContainer","ScrollHandler","_scrollContainer","_useScrollRestoration","excluded","sourceKeys","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","array","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","polyfill","_extends","getLocation","_source$location","search","hash","origin","protocol","host","hostname","port","canUseDOM","decodeURI","history","createHistory","transitioning","resolveTransition","_onTransitionComplete","listen","popstateListener","action","_ref$replace","go","Date","now","replaceState","pushState","transition","Promise","res","createMemorySource","initialPath","searchIndex","initialLocation","substr","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","localizedManifests","localizedManifest","find","app","start_url","lang","reactPropsRegex","prop","toVarName","toVarValue","numberScales","fontWeights","lineHeights","reservedKeys","useCustomProperties","initialColorModeName","initialColorMode","toPixel","objectToVars","parent","vars","storage","init","localStorage","useState","mode","setMode","useEffect","stored","body","classList","remove","useColorSchemeMediaQuery","darkQuery","darkMQL","lightMQL","query","matchMedia","media","matches","colors","useBodyStyles","modes","color","bg","rawColors","ref$1","colorMode","setColorMode","emotionTheme","toCustomProperties","themeKey","_objectSpread2","_objectWithoutProperties","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","MDXContext","components","contextComponents","allComponents","DEFAULTS","inlineCode","wrapper","Fragment","MDXCreateElement","propComponents","mdxType","originalType","parentName","etc","aliases","thematicBreak","root","comps","def","p","undef","defaultBreakpoints","defaultTheme","space","fontSizes","m","mt","mr","mb","ml","mx","my","pt","pr","pb","pl","px","py","multiples","marginX","marginY","paddingX","paddingY","scales","backgroundColor","borderColor","margin","marginTop","marginRight","marginBottom","marginLeft","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","top","right","bottom","left","gridGap","gridColumnGap","gridRowGap","gap","columnGap","rowGap","fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","border","borderTop","borderRight","borderBottom","borderLeft","borderWidth","borderStyle","borderRadius","borderTopRightRadius","borderTopLeftRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderTopColor","borderTopStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRightWidth","borderRightColor","borderRightStyle","outlineColor","boxShadow","textShadow","zIndex","minWidth","maxWidth","minHeight","maxHeight","flexBasis","stroke","positiveOrNegative","scale","absolute","abs","transforms","curr","breakpoints","mediaQueries","responsive","scaleName","dirs","variant","boxSizing","useBorderBox","isNonNullObject","stringValue","toString","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","property","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","sourceIsArray","prev","cjs","ExtendContext","ExtendUpdateContext","extendedOptions","extendedTheme","themeKeys","useExtensions","setState","defaultOptions","navigation","layout","topbar","hideOnMobile","breakIndex","header","sticky","stickyMobile","stickyScroll","scroll","toggleClass","colorToggle","hideColorToggleOnMobile","hideWidgetsOnMobile","dropdown","caret","mobileMenu","visibleOnDesktop","defaultCloseButton","closeOnBlur","closeOnRouteChange","sideNav","isHeader","isPrimaryMobileNav","floatingToggle","maxWidthSection","sidebarGap","sidebar","footer","a11y","skiplinks","OptionContext","OptionUpdateContext","dispatch","useOptions","ActionContext","ActionUpdateContext","menuActive","sideNavActive","useMenu","useSideNav","links","includes","__css","listStyle","display","setBreakpoint","unshift","validate","layouts","eui_layout","base_sidebar","t","gap_content","gridRow","base_sidenav","headers","eui_header","alignItems","flexWrap","justifyContent","center","columns","visibility","fade","dropdownStyles","active","transformOrigin","li","themeMap","mappedOptions","bg_topbar","bg_header","bg_mobileMenu","bg_sideNav","bg_footer","heading","bold","sizes","maxWidth_header","maxWidth_topbar","maxWidth_content","maxWidth_section","maxWidth_footer","width_mobileMenu","width_sidebar","width_sideNav","eui_submenu","ref$1_0","allOptions","scrollOverflow","exclude","k","objectWithoutProperties","overflowX","whiteSpace","isBrowser","getScrollPosition","getBoundingClientRect","useScrollPosition","effect","wait","throttleTimeout","callBack","currPos","prevPos","handleScroll","Header","ref$2","scrollClass","setScrollClass","ref$3","show","setShow","objectWithoutProperties$1","isDownScroll","aboveLimit","ref$4","isActive","stickyPartial","custom","toggle","bp","partial","willChange","submenu","menuControls","viewBox","strokeWidth","newTab","rel","onFocus","onBlur","getAttributes","ref_data","data","verticalAlign","getAttributes$1","Menu","memo","menuItems","item","menu","toggleMenu","sideMenu","toggleSideMenu","closeIcon","objectWithoutProperties$2","sideNavPrimary","getAttributes$2","background","svg","xmlns","objectWithoutProperties$3","Basic","logo","widgetArea","menuToggle","objectWithoutProperties$4","flex","Center","objectWithoutProperties$5","mid","renderBlock","flexDirection","Reverse","objectWithoutProperties$6","Minimal","objectWithoutProperties$7","Navbar","objectWithoutProperties$8","setOptions","useOptionUpdater","AccordionMenu","menuType","objectWithoutProperties$9","showMenu","showSideNav","toggleSideNav","fullWidth","getTransition","directionX","MobileMenu","format","Content","objectWithoutProperties$a","newLayout","useLayout","baseLayout","setLayout","sidebarPartial","gridTemplateColumns","Main","objectWithoutProperties$b","toggleVariant","customToggle","objectWithoutProperties$c","setActive","getTransform","Footer","objectWithoutProperties$d","objectWithoutProperties$e","text","primary","secondary","navlink","fonts","textDecoration","navbar","menuButton","widgets","mobileNav","titleBorder","textAlign","buttons","cursor","src","alt","_interopRequireWildcard","React","_sessionStorage","_stateStorage","scrollListener","scrollY","windowScroll","shouldUpdateScroll","scrollToHash","node","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","onClientEntry","log","pageYOffset","behavior","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","self","PageRenderer","pageResources","json","pageContext","__params","pathContext","pageElement","apiRunner","loader","publicLoader","component","page","pop","routes","match","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","l","missed","routeSegments","max","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","exec","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","validateRedirect","from","isDynamic","sort","rankRoute","score","isRootSegment","SEGMENT_POINTS","q","shallowCompare","obj1","obj2","obj1Keys","every","plugin","require","ie10","appVersion","fns","doc","hack","loaded","shift","h","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","order","orphans","tabSize","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","p1","p2","handleInterpolation","interpolation","couldBeSelectorInterpolation","anim","interpolated","createStringFromObject","previousCursor","cached","labelPattern","stringMode","strings","lastIndex","serviceWorker","register","reg","installingWorker","installing","controller","___swUpdated","___failedResources","reload","deepmerge_1","ReferenceError","condition","f","argIndex","framesToPop","getRegisteredStyles","registeredStyles","classNames","rawClassName","insertStyles","isStringTag","inserted","insert","sheet","Function","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","close","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","RouteAnnouncerProps","overflow","clip","redirectMap","redirects","redirect","fromPath","maybeRedirect","toPath","onPreRouteUpdate","prevLocation","onRouteUpdate","timeoutId","loadPage","status","PageResourceStatus","webpackCompilationHash","___webpackCompilationHash","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","createRef","nextProps","requestAnimationFrame","pageName","pageHeadings","querySelectorAll","textContent","newAnnouncement","innerText","RouteUpdates","shouldFireRouteUpdate","getSnapshotBeforeUpdate","shallowDiffers","EnsureResources","loadPageSync","getDerivedStateFromProps","loadResources","rawPath","shouldComponentUpdate","nextState","ProdLoader","asyncRequires","setLoader","setApiRunner","___emitter","apiRunnerAsync","RouteHandler","baseuri","basepath","DataContext","GatsbyRoot","staticQueryResults","getStaticQueryResults","LocationHandler","pagePath","browserLoc","SiteRoot","App","renderer","ReactDOM","hydrate","domReady","subClass","superClass","__proto__","prefetchPathname","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","Number","graphql","unstable_collectionGraphql","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","getPrototypeOf","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","event","port2","script","onreadystatechange","removeChild","appendChild","attachEvent","task","_possibleConstructorReturn","_inherits","setPrototypeOf","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","isRedirect","_navigate","unmounted","ServerLocation","url","BaseContext","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_props","_navigate2","_props$component","domProps","Children","toArray","createRoute","cloneElement","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","_key2","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$component","Comp","outline","tabIndex","C","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","hashIndex","_inheritsLoose","_arrayLikeToArray","arr2","_toConsumableArray","iter","minLen","supportedPrefetchStrategy","feature","fakeLink","relList","supports","support","link","onload","onerror","getElementsByTagName","getElementsByName","parentNode","req","XMLHttpRequest","open","send","preFetched","prefetch","Success","preferDefault","createPageDataUrl","doFetch","method","toPageResources","pageData","componentChunkName","staticQueryHashes","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","Set","prefetchCompleted","memoizedGet","inFlightPromise","response","delete","prefetchDisabled","some","fetchPageDataJson","loadObj","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResultsMap","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","add","realPath","doPrefetch","getResourceURLsForPathname","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","chunkName","pageDataUrl","prefetchHelper","crossOrigin","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","wrapPageElement","_reactDom","scrollKey","ScrollContainerImplementation","findDOMNode","_assign","defaults","createMediaQuery","getValue","createParser","shouldSort","isCacheDisabled","disableStyledSystemCache","localeCompare","numeric","sensitivity","propNames","_createParser","_assign2","breakpoint","_assign3","createStyleFunction","properties","_ref$transform","defaultScale","system","conf","parsers","parser","isNumber","overflowY","typography","fontStyle","flexbox","alignContent","justifyItems","justifySelf","alignSelf","grid","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateRows","gridTemplateAreas","gridArea","borderX","borderY","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","bgImage","bgSize","bgPosition","bgRepeat","isNegative","configs","shadow","_ref$prop","_ref$variants","variants","buttonStyle","textStyle","colorStyle","regex","Box","__themeKey","Flex","widthToColumns","countToColumns","appearance","Image","Label","Input","MRE","omitMargin","pointerEvents","thumb","Control","htmlFor","min","PI","spin","duration","animationName","animationTimingFunction","animationDuration","IconButton","ratio","frameBorder","allowFullScreen","allow","AspectRatio","objectFit","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","reverse","skipTempReset","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","pluginOptions","ga","excludeGAPaths","rx","delay","pageTransitionDelay","StyleSheet","isSpeedy","speedy","tags","ctr","nonce","before","rule","_tag","createTextNode","createStyleElement","nextSibling","styleSheets","ownerNode","sheetForTag","isImportRule","insertRule","cssRules","flush","W","X","ia","Z","v","F","L","ja","ka","aa","G","ba","la","ma","R","na","ea","oa","H","g","A","S","B","U","D","z","M","K","u","I","J","N","ca","O","da","fa","Y","E","ha","Q","use","T","toSheet","block","Sheet","ruleSheet","selectors","parents","line","column","ns","depth","at","delimiter","stylisOptions","stylis","_insert","nodes","stylisPlugins","selector","shouldCache","EmotionCacheContext","HTMLElement","ThemeContext","typePropName","cssProp","Emotion","argsLength","createElementArgArray","Global","InnerGlobal","updater","nextElementSibling","insertable","classnames","cls","toAdd","ele","ProdPageRenderer","InternalPageRenderer","plugins","api","defaultReturn","argTransform","previous","Layout","GATSBY_LAYOUT_COMPONENT_PATH"],"mappings":"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","file":"app-e30ed7147a013fe3e577.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _utils = require(\"@reach/router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + ((base === null || base === void 0 ? void 0 : base.endsWith(\"/\")) ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref2) {\n var isPartiallyCurrent = _ref2.isPartiallyCurrent,\n isCurrent = _ref2.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n ___loader.enqueue((0, _parsePath.parsePath)(rewriteLinkPath(this.props.to, window.location.pathname)).pathname);\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n ___loader.enqueue((0, _parsePath.parsePath)(rewriteLinkPath(this.props.to, window.location.pathname)).pathname);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n ___loader.enqueue((0, _parsePath.parsePath)(rewriteLinkPath(_this2.props.to, window.location.pathname)).pathname);\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref3) {\n var location = _ref3.location;\n var prefixedTo = rewriteLinkPath(to, location.pathname);\n return isLocalLink(prefixedTo) ? /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: _this3.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n var isCurrent = encodeURI(prefixedTo) === window.location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest)) : /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n });\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(rewriteLinkPath(to, window.location.pathname));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(rewriteLinkPath(to, window.location.pathname));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","var _typeof = require(\"../helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","import { jsx, ThemeContext } from '@emotion/core';\nimport { css } from '@theme-ui/css';\nimport React from 'react';\nimport deepmerge from 'deepmerge';\nimport { version } from '@emotion/core/package.json';\n\nvar getCSS = function getCSS(props) {\n if (!props.sx && !props.css) {\n return undefined;\n }\n\n return function (theme) {\n var styles = css(props.sx)(theme);\n var raw = typeof props.css === 'function' ? props.css(theme) : props.css;\n return [styles, raw];\n };\n};\n\nvar parseProps = function parseProps(props) {\n if (!props) {\n return null;\n }\n\n var next = {};\n\n for (var key in props) {\n if (key === 'sx') {\n continue;\n }\n\n next[key] = props[key];\n }\n\n var css$$1 = getCSS(props);\n\n if (css$$1) {\n next.css = css$$1;\n }\n\n return next;\n};\n\nvar jsx$1 = function jsx$1(type, props) {\n var children = [],\n len = arguments.length - 2;\n\n while (len-- > 0) {\n children[len] = arguments[len + 2];\n }\n\n return jsx.apply(undefined, [type, parseProps(props)].concat(children));\n};\n\nvar Context = React.createContext({\n __EMOTION_VERSION__: version,\n theme: null\n});\n\nvar useThemeUI = function useThemeUI() {\n return React.useContext(Context);\n};\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\nvar FORWARD_REF = canUseSymbol ? Symbol.for('react.forward_ref') : 0xeac7;\n\nvar isMergeableObject = function isMergeableObject(n) {\n return !!n && typeof n === 'object' && n.$$typeof !== REACT_ELEMENT && n.$$typeof !== FORWARD_REF;\n};\n\nvar arrayMerge = function arrayMerge(destinationArray, sourceArray, options) {\n return sourceArray;\n};\n\nvar merge = function merge(a, b) {\n return deepmerge(a, b, {\n isMergeableObject: isMergeableObject,\n arrayMerge: arrayMerge\n });\n};\n\nmerge.all = function () {\n var args = [],\n len = arguments.length;\n\n while (len--) {\n args[len] = arguments[len];\n }\n\n return deepmerge.all(args, {\n isMergeableObject: isMergeableObject,\n arrayMerge: arrayMerge\n });\n};\n\nvar BaseProvider = function BaseProvider(ref) {\n var context = ref.context;\n var children = ref.children;\n return jsx$1(ThemeContext.Provider, {\n value: context.theme\n }, jsx$1(Context.Provider, {\n value: context,\n children: children\n }));\n};\n\nvar ThemeProvider = function ThemeProvider(ref) {\n var theme = ref.theme;\n var children = ref.children;\n var outer = useThemeUI();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outer.__EMOTION_VERSION__ !== version) {\n console.warn('Multiple versions of Emotion detected,', 'and theming might not work as expected.', 'Please ensure there is only one copy of @emotion/core installed in your application.');\n }\n }\n\n var context = typeof theme === 'function' ? Object.assign({}, outer, {\n theme: theme(outer.theme)\n }) : merge.all({}, outer, {\n theme: theme\n });\n return jsx$1(BaseProvider, {\n context: context,\n children: children\n });\n};\n\nexport { jsx$1 as jsx, Context, useThemeUI, merge, ThemeProvider };","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _router = require(\"@reach/router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _router.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, []);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport { createElement } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/core';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme' && key !== 'innerRef';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 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 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var identifierName;\n var shouldForwardProp;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n options.shouldForwardProp(propName);\n } : options.shouldForwardProp;\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, context, ref) {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = theme;\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(context.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);\n var rules = insertStyles(context, serialized, typeof finalTag === 'string');\n className += context.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref || props.innerRef;\n\n if (process.env.NODE_ENV !== 'production' && props.innerRef) {\n console.error('`innerRef` is deprecated and will be removed in a future major version of Emotion, please use the `ref` prop instead' + (identifierName === undefined ? '' : \" in the usage of `\" + identifierName + \"`\"));\n }\n\n var ele = createElement(finalTag, newProps);\n return ele;\n });\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, nextOptions !== undefined ? _objectSpread({}, options || {}, {}, nextOptions) : options).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;","import styled from '@emotion/styled-base';\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\nvar newStyled = styled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\nexport default newStyled;","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\n\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Duotone|Brands|Free|Pro)/;\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\n\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\n\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\n\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\n\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\n\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\n\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n}\n\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\n\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\n\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction makeIconStandard(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n}\n\nfunction asIcon(_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol(_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var widthClass = \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: extra.styles\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\n\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"5.14.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\n\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = ('far' in styles);\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\n\nbuild();\n\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\n\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\n\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\n\nvar disabled = false;\n\nfunction disableObservation() {\n disabled = true;\n}\n\nfunction enableObservation() {\n disabled = false;\n}\n\nvar mo = null;\n\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\n\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser(node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser(node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n};\n\nfunction transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n}\n\nfunction attributesParser(node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction maskParser(node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\n\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\n\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n};\n\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\nvar styles$2 = namespace.styles;\n\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\n\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n var headers = {};\n\n if (_typeof(WINDOW.FontAwesomeKitConfig) === 'object' && typeof window.FontAwesomeKitConfig.token === 'string') {\n headers['fa-kit-token'] = WINDOW.FontAwesomeKitConfig.token;\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n}\n\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: 1.25em;\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\n}\\n\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse {\\n color: #fff;\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nfunction apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\n\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n});\n\nvar text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\n\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\n\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContainer = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _scrollContainer = require(\"./scroll-container\");\n\nexports.ScrollContainer = _scrollContainer.ScrollContainer;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","exports.polyfill = Component => Component\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","import React from 'react';\nimport { jsx, useThemeUI, merge, Context } from '@theme-ui/core';\nimport { Global, ThemeContext } from '@emotion/core';\nimport { css, get } from '@theme-ui/css';\n\nvar toVarName = function toVarName(key) {\n return \"--theme-ui-\" + key;\n};\n\nvar toVarValue = function toVarValue(key, value) {\n return \"var(\" + toVarName(key) + \", \" + value + \")\";\n};\n\nvar join = function join() {\n var args = [],\n len = arguments.length;\n\n while (len--) {\n args[len] = arguments[len];\n }\n\n return args.filter(Boolean).join('-');\n};\n\nvar numberScales = {\n fontWeights: true,\n lineHeights: true\n};\nvar reservedKeys = {\n useCustomProperties: true,\n initialColorModeName: true,\n initialColorMode: true\n};\n\nvar toPixel = function toPixel(key, value) {\n if (typeof value !== 'number') {\n return value;\n }\n\n if (numberScales[key]) {\n return value;\n }\n\n return value + 'px';\n}; // convert theme values to custom properties\n\n\nvar toCustomProperties = function toCustomProperties(obj, parent, themeKey) {\n var next = Array.isArray(obj) ? [] : {};\n\n for (var key in obj) {\n var value = obj[key];\n var name = join(parent, key);\n\n if (value && typeof value === 'object') {\n next[key] = toCustomProperties(value, name, key);\n continue;\n }\n\n if (reservedKeys[key]) {\n next[key] = value;\n continue;\n }\n\n var val = toPixel(themeKey || key, value);\n next[key] = toVarValue(name, val);\n }\n\n return next;\n};\n\nvar objectToVars = function objectToVars(parent, obj) {\n var vars = {};\n\n for (var key in obj) {\n if (key === 'modes') {\n continue;\n }\n\n var name = join(parent, key);\n var value = obj[key];\n\n if (value && typeof value === 'object') {\n vars = Object.assign({}, vars, objectToVars(name, value));\n } else {\n vars[toVarName(name)] = value;\n }\n }\n\n return vars;\n}; // create body styles for color modes\n\n\nvar createColorStyles = function createColorStyles(theme) {\n if (theme === void 0) theme = {};\n\n if (!theme.colors || theme.useBodyStyles === false) {\n return {};\n }\n\n if (theme.useCustomProperties === false || !theme.colors.modes) {\n return css({\n body: {\n color: 'text',\n bg: 'background'\n }\n })(theme);\n }\n\n var colors = theme.rawColors || theme.colors;\n var modes = colors.modes;\n var styles = objectToVars('colors', colors);\n Object.keys(modes).forEach(function (mode) {\n var key = \"&.theme-ui-\" + mode;\n styles[key] = objectToVars('colors', modes[mode]);\n });\n return css({\n body: Object.assign({}, styles, {\n color: 'text',\n bg: 'background'\n })\n })(theme);\n};\n\nvar STORAGE_KEY = 'theme-ui-color-mode';\nvar storage = {\n get: function get(init) {\n try {\n return window.localStorage.getItem(STORAGE_KEY) || init;\n } catch (e) {\n console.warn('localStorage is disabled and color mode might not work as expected.', 'Please check your Site Settings.', e);\n }\n },\n set: function set(value) {\n try {\n window.localStorage.setItem(STORAGE_KEY, value);\n } catch (e) {\n console.warn('localStorage is disabled and color mode might not work as expected.', 'Please check your Site Settings.', e);\n }\n }\n};\n\nvar getMediaQuery = function getMediaQuery() {\n var darkQuery = '(prefers-color-scheme: dark)';\n var lightQuery = '(prefers-color-scheme: light)';\n var darkMQL = window.matchMedia ? window.matchMedia(darkQuery) : {};\n var lightMQL = window.matchMedia ? window.matchMedia(lightQuery) : {};\n var dark = darkMQL.media === darkQuery && darkMQL.matches;\n\n if (dark) {\n return 'dark';\n }\n\n var light = lightMQL.media === lightQuery && lightMQL.matches;\n\n if (light) {\n return 'light';\n }\n\n return 'default';\n};\n\nvar useColorModeState = function useColorModeState(theme) {\n if (theme === void 0) theme = {};\n var ref = React.useState(theme.initialColorModeName || 'default');\n var mode = ref[0];\n var setMode = ref[1]; // initialize state\n\n React.useEffect(function () {\n var stored = storage.get();\n document.body.classList.remove('theme-ui-' + stored);\n\n if (!stored && theme.useColorSchemeMediaQuery) {\n var query = getMediaQuery();\n setMode(query);\n return;\n }\n\n if (!stored || stored === mode) {\n return;\n }\n\n setMode(stored);\n }, []);\n React.useEffect(function () {\n if (!mode) {\n return;\n }\n\n storage.set(mode);\n }, [mode]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (theme.colors && theme.colors.modes && Object.keys(theme.colors.modes).indexOf(theme.initialColorModeName) > -1) {\n console.warn('The `initialColorModeName` value should be a unique name' + ' and cannot reference a key in `theme.colors.modes`.');\n }\n }\n\n return [mode, setMode];\n};\n\nvar useColorMode = function useColorMode() {\n var ref = useThemeUI();\n var colorMode = ref.colorMode;\n var setColorMode = ref.setColorMode;\n\n if (typeof setColorMode !== 'function') {\n throw new Error(\"[useColorMode] requires the ColorModeProvider component\");\n }\n\n return [colorMode, setColorMode];\n};\n\nvar applyColorMode = function applyColorMode(theme, mode) {\n if (!mode) {\n return theme;\n }\n\n var modes = get(theme, 'colors.modes', {});\n return merge.all({}, theme, {\n colors: get(modes, mode, {})\n });\n};\n\nvar BodyStyles = function BodyStyles() {\n return jsx(Global, {\n styles: function styles(theme) {\n return createColorStyles(theme);\n }\n });\n};\n\nvar ColorModeProvider = function ColorModeProvider(ref) {\n var children = ref.children;\n var outer = useThemeUI();\n var ref$1 = useColorModeState(outer.theme);\n var colorMode = ref$1[0];\n var setColorMode = ref$1[1];\n var theme = applyColorMode(outer.theme || {}, colorMode);\n var emotionTheme = Object.assign({}, theme);\n\n if (theme.useCustomProperties !== false) {\n emotionTheme.colors = toCustomProperties(emotionTheme.colors, 'colors');\n }\n\n var context = Object.assign({}, outer, {\n theme: theme,\n colorMode: colorMode,\n setColorMode: setColorMode\n });\n return jsx(ThemeContext.Provider, {\n value: emotionTheme\n }, jsx(Context.Provider, {\n value: context\n }, jsx(BodyStyles, {\n key: 'color-mode'\n }), children));\n};\n\nvar noflash = \"(function() { try {\\n var mode = localStorage.getItem('theme-ui-color-mode');\\n if (!mode) return\\n document.body.classList.add('theme-ui-' + mode);\\n} catch (e) {} })();\";\n\nvar InitializeColorMode = function InitializeColorMode() {\n return jsx('script', {\n key: 'theme-ui-no-flash',\n dangerouslySetInnerHTML: {\n __html: noflash\n }\n });\n};\n\nexport { useColorMode, ColorModeProvider, InitializeColorMode };","import React from 'react';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n\nvar MDXContext = /*#__PURE__*/React.createContext({});\n\nvar withMDXComponents = function withMDXComponents(Component) {\n return function (props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n components: allComponents\n }));\n };\n};\n\nvar useMDXComponents = function useMDXComponents(components) {\n var contextComponents = React.useContext(MDXContext);\n var allComponents = contextComponents;\n\n if (components) {\n allComponents = isFunction(components) ? components(contextComponents) : _objectSpread2(_objectSpread2({}, contextComponents), components);\n }\n\n return allComponents;\n};\n\nvar MDXProvider = function MDXProvider(props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(MDXContext.Provider, {\n value: allComponents\n }, props.children);\n};\n\nvar TYPE_PROP_NAME = 'mdxType';\nvar DEFAULTS = {\n inlineCode: 'code',\n wrapper: function wrapper(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, {}, children);\n }\n};\nvar MDXCreateElement = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var propComponents = props.components,\n mdxType = props.mdxType,\n originalType = props.originalType,\n parentName = props.parentName,\n etc = _objectWithoutProperties(props, [\"components\", \"mdxType\", \"originalType\", \"parentName\"]);\n\n var components = useMDXComponents(propComponents);\n var type = mdxType;\n var Component = components[\"\".concat(parentName, \".\").concat(type)] || components[type] || DEFAULTS[type] || originalType;\n\n if (propComponents) {\n return /*#__PURE__*/React.createElement(Component, _objectSpread2(_objectSpread2({\n ref: ref\n }, etc), {}, {\n components: propComponents\n }));\n }\n\n return /*#__PURE__*/React.createElement(Component, _objectSpread2({\n ref: ref\n }, etc));\n});\nMDXCreateElement.displayName = 'MDXCreateElement';\n\nfunction createElement(type, props) {\n var args = arguments;\n var mdxType = props && props.mdxType;\n\n if (typeof type === 'string' || mdxType) {\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = MDXCreateElement;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.originalType = type;\n newProps[TYPE_PROP_NAME] = typeof type === 'string' ? type : mdxType;\n createElementArgArray[1] = newProps;\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n }\n\n return React.createElement.apply(null, args);\n}\n\nexport { MDXContext, MDXProvider, createElement as mdx, useMDXComponents, withMDXComponents };","import { jsx } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport 'react';\nimport '@emotion/core';\nimport styled from '@emotion/styled';\nimport { MDXProvider, useMDXComponents } from '@mdx-js/react';\nvar tags = ['p', 'b', 'i', 'a', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'pre', 'code', 'ol', 'ul', 'li', 'blockquote', 'hr', 'em', 'table', 'tr', 'th', 'td', 'em', 'strong', 'del', // mdx\n'inlineCode', 'thematicBreak', // other\n'div', // theme-ui\n'root'];\nvar aliases = {\n inlineCode: 'code',\n thematicBreak: 'hr',\n root: 'div'\n};\n\nvar alias = function alias(n) {\n return aliases[n] || n;\n};\n\nvar themed = function themed(key) {\n return function (props) {\n return css(get(props.theme, \"styles.\" + key))(props.theme);\n };\n};\n\nvar Styled = styled('div')(themed('div'));\nvar components = {};\ntags.forEach(function (tag) {\n components[tag] = styled(alias(tag))(themed(tag));\n Styled[tag] = components[tag];\n});\n\nvar createComponents = function createComponents(comps) {\n var next = Object.assign({}, components);\n Object.keys(comps).forEach(function (key) {\n next[key] = styled(comps[key])(themed(key));\n });\n return next;\n};\n\nvar MDXProvider$1 = function MDXProvider$1(ref) {\n var components = ref.components;\n var children = ref.children;\n var outer = useMDXComponents();\n return jsx(MDXProvider, {\n components: createComponents(Object.assign({}, outer, components)),\n children: children\n });\n};\n\nexport { themed, Styled, components, MDXProvider$1 as MDXProvider };","import { jsx, useThemeUI, ThemeProvider } from '@theme-ui/core';\nimport { ColorModeProvider } from '@theme-ui/color-modes';\nimport { MDXProvider } from '@theme-ui/mdx';\nimport { Global } from '@emotion/core';\n\nvar get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\n\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nvar multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n size: ['width', 'height']\n};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n\n if (typeof n === 'string') {\n return '-' + n;\n }\n\n return n * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var obj;\n return Object.assign({}, acc, (obj = {}, obj[curr] = positiveOrNegative, obj));\n}, {});\n\nvar responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = get(theme, 'breakpoints', defaultBreakpoints);\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var key in styles) {\n var value = typeof styles[key] === 'function' ? styles[key](theme) : styles[key];\n\n if (value == null) {\n continue;\n }\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n\n if (value[i] == null) {\n continue;\n }\n\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\n\nvar css = function css(args) {\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = Object.assign({}, defaultTheme, props.theme || props);\n var result = {};\n var obj = typeof args === 'function' ? args(theme) : args;\n var styles = responsive(obj)(theme);\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (key === 'variant') {\n var variant = css(get(theme, val))(theme);\n result = Object.assign({}, result, variant);\n continue;\n }\n\n if (val && typeof val === 'object') {\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = get(aliases, key, key);\n var scaleName = get(scales, prop);\n var scale = get(theme, scaleName, get(theme, prop, {}));\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (multiples[prop]) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\n\nvar BodyStyles = function BodyStyles() {\n return jsx(Global, {\n styles: function styles(theme) {\n if (theme.useBodyStyles === false || theme.styles && !theme.styles.root) {\n return false;\n }\n\n var boxSizing = theme.useBorderBox === false ? null : 'border-box';\n return css({\n '*': {\n boxSizing: boxSizing\n },\n body: {\n margin: 0,\n variant: 'styles.root'\n }\n })(theme);\n }\n });\n};\n\nvar ThemeProvider$1 = function ThemeProvider$1(ref) {\n var theme = ref.theme;\n var components = ref.components;\n var children = ref.children;\n var outer = useThemeUI();\n\n if (typeof outer.setColorMode === 'function') {\n return jsx(ThemeProvider, {\n theme: theme\n }, jsx(MDXProvider, {\n components: components,\n children: children\n }));\n }\n\n return jsx(ThemeProvider, {\n theme: theme\n }, jsx(ColorModeProvider, null, jsx(BodyStyles), jsx(MDXProvider, {\n components: components,\n children: children\n })));\n};\n\nexport { ThemeProvider$1 as ThemeProvider };","import React, { useState, useContext, useReducer, useRef, useLayoutEffect } from 'react';\nimport { Box, ThemeProvider, Flex, useThemeUI } from 'theme-ui';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nvar cjs = deepmerge_1;\nvar ExtendContext = React.createContext();\nvar ExtendUpdateContext = React.createContext(); // Provider\n\nvar ExtensionProvider = function ExtensionProvider(ref) {\n var children = ref.children;\n var ref$1 = useState({\n extendedOptions: {},\n extendedTheme: {},\n themeKeys: []\n });\n var state = ref$1[0];\n var set = ref$1[1];\n return React.createElement(ExtendContext.Provider, {\n value: state\n }, React.createElement(ExtendUpdateContext.Provider, {\n value: set\n }, children));\n}; // Usage Hook\n\n\nfunction useExtensions() {\n var state = useContext(ExtendContext);\n var setState = useContext(ExtendUpdateContext);\n\n if (state === undefined) {\n throw new Error('useExtensions must be used within the Maker UI framework');\n }\n\n return [state, setState];\n}\n\nvar defaultOptions = {\n navigation: 'basic',\n layout: 'content',\n topbar: {\n maxWidth: 1260,\n hideOnMobile: false,\n breakIndex: 0\n },\n header: {\n maxWidth: 1460,\n sticky: false,\n stickyMobile: false,\n stickyScroll: false,\n scroll: {\n toggleClass: false,\n scrollTop: 200,\n className: 'sticky'\n },\n colorToggle: true,\n hideColorToggleOnMobile: false,\n hideWidgetsOnMobile: true,\n dropdown: {\n caret: true,\n transition: 'scale'\n },\n breakIndex: 0\n },\n mobileMenu: {\n width: '60vw',\n // note: can be responsive array\n transition: 'slideLeft',\n visibleOnDesktop: false,\n defaultCloseButton: false,\n closeOnBlur: true,\n closeOnRouteChange: false\n },\n sideNav: {\n width: 300,\n isHeader: false,\n // TODO\n isPrimaryMobileNav: false,\n floatingToggle: true,\n closeOnBlur: true,\n closeOnRouteChange: true,\n breakIndex: 0\n },\n content: {\n maxWidth: 1020,\n maxWidthSection: 1020,\n sidebarGap: 30,\n breakIndex: 0\n },\n sidebar: {\n width: 300\n },\n footer: {\n maxWidth: 1020\n },\n a11y: {\n skiplinks: true\n }\n};\nvar OptionContext = React.createContext();\nvar OptionUpdateContext = React.createContext(); // Provider\n\nvar OptionProvider = function OptionProvider(ref) {\n var options = ref.options;\n if (options === void 0) options = {};\n var children = ref.children;\n var ref$1 = useState(cjs(defaultOptions, options));\n var state = ref$1[0];\n var dispatch = ref$1[1];\n return React.createElement(OptionContext.Provider, {\n value: state\n }, React.createElement(OptionUpdateContext.Provider, {\n value: dispatch\n }, children));\n}; // Usage Hooks\n\n\nfunction useOptions() {\n var options = useContext(OptionContext);\n\n if (options === undefined) {\n throw new Error('useOptions must be used within an Maker UI Layout component');\n }\n\n return options;\n}\n\nfunction useOptionUpdater() {\n var dispatch = useContext(OptionUpdateContext);\n\n if (dispatch === undefined) {\n throw new Error('useOptionsUpdater must be used within an Maker UI Layout component');\n }\n\n function setOptions(options) {\n dispatch(function (state) {\n return cjs(state, options);\n });\n }\n\n return setOptions;\n}\n\nfunction useLayout() {\n var ref = useContext(OptionContext);\n var layout = ref.layout;\n var dispatch = useContext(OptionUpdateContext);\n\n if (layout === undefined) {\n throw new Error('useLayout must be used within an Maker UI layout');\n }\n\n function setLayout(newLayout) {\n dispatch(function (state) {\n return Object.assign({}, state, {\n layout: newLayout\n });\n });\n }\n\n return [layout, setLayout];\n}\n\nvar ActionContext = React.createContext();\nvar ActionUpdateContext = React.createContext();\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'menu':\n {\n return Object.assign({}, state, {\n menuActive: !state.menuActive\n });\n }\n\n case 'sideNav':\n {\n return Object.assign({}, state, {\n sideNavActive: !state.sideNavActive\n });\n }\n\n default:\n {\n throw new Error(\"Unhandled action type: \" + action.type);\n }\n }\n} // Provider\n\n\nvar ActionProvider = function ActionProvider(ref) {\n var children = ref.children;\n var ref$1 = useReducer(reducer, {\n menuActive: false,\n sideNavActive: false\n });\n var state = ref$1[0];\n var dispatch = ref$1[1];\n return React.createElement(ActionContext.Provider, {\n value: state\n }, React.createElement(ActionUpdateContext.Provider, {\n value: dispatch\n }, children));\n}; // Usage Hooks\n\n\nfunction useMenu() {\n var ref = useContext(ActionContext);\n var menuActive = ref.menuActive;\n var dispatch = useContext(ActionUpdateContext);\n\n if (typeof menuActive === undefined) {\n throw new Error('useMenu must be used within an Maker UI layout');\n }\n\n function toggleMenu() {\n dispatch({\n type: 'menu'\n });\n }\n\n return [menuActive, toggleMenu];\n}\n\nfunction useSideNav() {\n var ref = useContext(ActionContext);\n var sideNavActive = ref.sideNavActive;\n var dispatch = useContext(ActionUpdateContext);\n\n if (typeof sideNavActive === undefined) {\n throw new Error('useSideNav must be used within an Maker UI layout');\n }\n\n function setSideNav() {\n dispatch({\n type: 'sideNav'\n });\n }\n\n return [sideNavActive, setSideNav];\n}\n\nvar Skiplinks = function Skiplinks() {\n var ref = useOptions();\n var layout = ref.layout;\n var a11y = ref.a11y;\n var links = [{\n id: '#content',\n label: 'Skip to content'\n }, {\n id: '#footer',\n label: 'Skip to footer'\n }];\n\n if (layout.includes('sidenav')) {\n links.splice(1, 0, {\n id: '#side-nav',\n label: 'Skip to side navigation'\n });\n }\n\n return a11y.skiplinks ? React.createElement(Box, {\n as: \"ul\",\n __css: {\n listStyle: 'none',\n position: 'relative',\n zIndex: 1000,\n p: 0,\n a: {\n bg: 'bg_header',\n display: 'block',\n position: 'absolute',\n fontFamily: 'body',\n left: -9999,\n p: '1em',\n '&:focus': {\n left: 0\n }\n }\n }\n }, links.map(function (ref) {\n var id = ref.id;\n var label = ref.label;\n return React.createElement('li', {\n key: id\n }, React.createElement('a', {\n href: id\n }, label));\n })) : null;\n};\n\nfunction generateId(length) {\n if (length === void 0) length = 5;\n var result = '';\n var chars = 'abcdefghijklmnopqrstuv1234567890';\n var charLength = chars.length;\n\n for (var i = 0; i < length; i++) {\n result += chars.charAt(Math.floor(Math.random() * charLength));\n }\n\n return result;\n}\n\nfunction setBreakpoint(index, arr) {\n var i = 0;\n\n while (i < index) {\n arr.unshift(null);\n i++;\n }\n\n return arr;\n}\n\nfunction validate(obj) {\n return obj !== undefined && typeof obj === 'object' ? obj : {};\n}\n\nvar content = {\n display: 'block',\n maxWidth: 'maxWidth_content',\n mx: 'auto'\n};\nvar sidebar = {\n base_sidebar: {\n display: 'grid',\n gridGap: function gridGap(t) {\n return t.gap.gap_content;\n },\n maxWidth: 'maxWidth_content',\n mx: 'auto'\n },\n 'sidebar-content': {\n variant: 'eui_layout.base_sidebar',\n '#primary-sidebar': {\n gridRow: [2, 'auto']\n }\n },\n 'content-sidebar': {\n variant: 'eui_layout.base_sidebar'\n }\n};\nvar sideNav = {\n base_sidenav: {\n display: 'flex',\n '#content': {\n maxWidth: 'maxWidth_content',\n mx: 'auto'\n }\n },\n 'sidenav-content': {\n variant: 'eui_layout.base_sidenav',\n '#side-nav': {\n left: 0\n },\n '#toggle-sidenav': {\n right: 30\n }\n },\n 'content-sidenav': {\n variant: 'eui_layout.base_sidenav',\n '#side-nav': {\n right: 0\n },\n '#toggle-sidenav': {\n left: 30\n }\n }\n};\nvar layouts = {\n eui_layout: Object.assign({}, {\n content: content,\n 'full-width': {\n display: 'block',\n maxWidth: '100%'\n }\n }, sidebar, sideNav)\n};\nvar headers = {\n eui_header: {\n base: {\n position: 'relative',\n m: '0 auto',\n alignItems: 'center',\n flexWrap: 'wrap'\n },\n default: {\n variant: 'eui_header.base',\n justifyContent: 'space-between'\n },\n center: {\n variant: 'eui_header.base',\n justifyContent: ['space-between', 'center']\n },\n columns: {\n variant: 'eui_header.base',\n '.col-1': {\n alignItems: 'center',\n width: ['25%', '33%'],\n button: {\n m: 0\n }\n },\n '.col-2': {\n width: ['50%', '34%'],\n justifyContent: 'center',\n alignItems: 'center'\n },\n '.col-3': {\n width: ['25%', '33%'],\n alignItems: 'center',\n justifyContent: 'flex-end'\n }\n }\n }\n};\nvar base = {\n opacity: 1,\n visibility: 'visible'\n};\nvar fade = {\n transition: 'all ease .3s'\n};\n\nvar dropdownStyles = function dropdownStyles(type) {\n switch (type) {\n case 'fade':\n return Object.assign({}, fade, {\n active: base\n });\n\n case 'fadeInDown':\n return Object.assign({}, {\n transform: 'translateY(-10px)'\n }, fade, {\n active: Object.assign({}, base, {\n transform: 'translateY(0)'\n })\n });\n\n case 'fadeInUp':\n return Object.assign({}, {\n transform: 'translateY(-10px)'\n }, fade, {\n active: Object.assign({}, base, {\n transform: 'translateY(0)'\n })\n });\n\n case 'scale':\n {\n return Object.assign({}, {\n transform: 'scale(1, 0)',\n transformOrigin: '0 0',\n transition: 'transform ease-in-out .25s'\n }, base, {\n li: {\n opacity: 0,\n transition: 'opacity .03s ease-in-out'\n },\n active: {\n transform: 'scale(1, 1)',\n li: {\n opacity: 1,\n transition: 'opacity ease-in-out .2s .2s'\n }\n }\n });\n }\n\n default:\n return {\n active: base\n };\n }\n};\n\nvar submenu = function submenu(type) {\n return {\n eui_submenu: Object.assign({}, dropdownStyles(type))\n };\n};\n\nvar themeMap = function themeMap(theme, extendedTheme, options) {\n var o = options === undefined ? defaultOptions : cjs(defaultOptions, options);\n var mappedOptions = Object.assign({}, {\n colors: {\n bg_topbar: '#355cac',\n bg_header: '#000',\n bg_mobileMenu: 'rgba(0, 0, 0, 0.9)',\n bg_sideNav: '#333',\n bg_footer: '#fff'\n },\n fontWeights: {\n body: 400,\n heading: 700,\n bold: 700\n },\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64],\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n breakpoints: ['750px', '960px', '1240px'],\n sizes: {\n maxWidth_header: o.header.maxWidth,\n maxWidth_topbar: o.topbar.maxWidth,\n maxWidth_content: o.content.maxWidth,\n maxWidth_section: o.content.maxWidthSection,\n maxWidth_footer: o.footer.maxWidth,\n width_mobileMenu: o.mobileMenu.width,\n width_sidebar: o.sidebar.width,\n width_sideNav: o.sideNav.width\n },\n gap: {\n gap_content: o.content.sidebarGap\n }\n }, layouts, headers, submenu(o.header.dropdown.transition));\n return cjs.all([mappedOptions, validate(extendedTheme), validate(theme)], {\n arrayMerge: function arrayMerge(target, source, options) {\n return source;\n }\n });\n};\n\nvar Layout = function Layout(props) {\n return React.createElement(ExtensionProvider, null, React.createElement(Root, props));\n};\n\nvar Root = function Root(ref) {\n var theme = ref.theme;\n var options = ref.options;\n var components = ref.components;\n var children = ref.children;\n var ref$1 = useExtensions();\n var ref$1_0 = ref$1[0];\n var extendedOptions = ref$1_0.extendedOptions;\n var extendedTheme = ref$1_0.extendedTheme;\n var allOptions = cjs(extendedOptions, options);\n return React.createElement(ThemeProvider, {\n theme: themeMap(theme, extendedTheme, allOptions),\n components: components\n }, React.createElement(OptionProvider, {\n options: allOptions\n }, React.createElement(ActionProvider, null, React.createElement(Skiplinks, null), children)));\n};\n\nfunction objectWithoutProperties(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Topbar = React.forwardRef(function (ref$1, ref) {\n var bg = ref$1.bg;\n if (bg === void 0) bg = 'bg_topbar';\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_topbar';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'topbar';\n var scrollOverflow = ref$1.scrollOverflow;\n if (scrollOverflow === void 0) scrollOverflow = false;\n var rest = objectWithoutProperties(ref$1, [\"bg\", \"maxWidth\", \"variant\", \"scrollOverflow\"]);\n var props = rest;\n var ref$2 = useOptions();\n var topbar = ref$2.topbar;\n return React.createElement(Box, {\n ref: ref,\n as: \"aside\",\n variant: variant,\n role: \"complementary\",\n bg: bg,\n sx: {\n display: topbar.hideOnMobile ? setBreakpoint(topbar.breakIndex, ['none', 'block']) : 'block'\n }\n }, React.createElement(Flex, Object.assign({}, props, {\n __css: {\n mx: 'auto',\n overflowX: scrollOverflow ? 'scroll' : null,\n whiteSpace: scrollOverflow ? 'nowrap' : null,\n maxWidth: maxWidth\n }\n })));\n}); // Credit to n8tb1t's https://github.com/n8tb1t/use-scroll-position\n\nvar isBrowser = typeof window !== 'undefined';\n\nfunction getScrollPosition() {\n if (!isBrowser) {\n return {\n x: 0,\n y: 0\n };\n }\n\n var position = document.body.getBoundingClientRect();\n return Math.abs(position.top);\n}\n\nfunction useScrollPosition(effect, wait) {\n var position = useRef(getScrollPosition());\n useLayoutEffect(function () {\n if (!isBrowser) {\n return;\n }\n\n var throttleTimeout = null;\n\n var callBack = function callBack() {\n var currPos = getScrollPosition();\n effect({\n prevPos: position.current,\n currPos: currPos\n });\n position.current = currPos;\n throttleTimeout = null;\n };\n\n var handleScroll = function handleScroll() {\n if (wait) {\n if (throttleTimeout === null) {\n throttleTimeout = setTimeout(callBack, wait);\n }\n } else {\n callBack();\n }\n };\n\n window.addEventListener('scroll', handleScroll);\n return function () {\n return window.removeEventListener('scroll', handleScroll);\n };\n }, [effect, wait]);\n}\n\nfunction objectWithoutProperties$1(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Header = React.forwardRef(function (props, ref) {\n var ref$1 = useOptions();\n var header = ref$1.header;\n var ref$2 = useState(null);\n var scrollClass = ref$2[0];\n var setScrollClass = ref$2[1];\n var ref$3 = useState(true);\n var show = ref$3[0];\n var setShow = ref$3[1];\n var bg = props.bg;\n if (bg === void 0) bg = 'bg_header';\n var variant = props.variant;\n if (variant === void 0) variant = 'header';\n var sticky = props.sticky;\n if (sticky === void 0) sticky = header.sticky;\n var stickyMobile = props.stickyMobile;\n if (stickyMobile === void 0) stickyMobile = header.stickyMobile;\n var stickyScroll = props.stickyScroll;\n if (stickyScroll === void 0) stickyScroll = header.stickyScroll;\n var rest$1 = objectWithoutProperties$1(props, [\"bg\", \"variant\", \"sticky\", \"stickyMobile\", \"stickyScroll\"]);\n var rest = rest$1;\n\n if (stickyScroll) {\n useScrollPosition(function (ref) {\n var prevPos = ref.prevPos;\n var currPos = ref.currPos;\n var isDownScroll = currPos > prevPos;\n var aboveLimit = currPos > 500;\n\n if (!aboveLimit && !show) {\n setShow(true);\n }\n\n if (aboveLimit && isDownScroll && show) {\n setShow(false);\n }\n\n if (aboveLimit && !isDownScroll && !show) {\n setShow(true);\n }\n }, 250);\n }\n\n if (header.scroll.toggleClass) {\n var ref$4 = header.scroll;\n var scrollTop = ref$4.scrollTop;\n var className = ref$4.className;\n useScrollPosition(function (ref) {\n var currPos = ref.currPos;\n var isActive = currPos > scrollTop ? className : null;\n\n if (isActive !== scrollClass) {\n setScrollClass(isActive);\n }\n }, 0);\n }\n\n var stickyPartial = stickyScroll ? {\n position: 'sticky',\n top: 0,\n transform: show ? 'none' : 'translateY(-100%)',\n transition: \"transform .3s \" + (show ? \"ease-in\" : \"ease-out\")\n } : sticky ? {\n top: 0,\n position: stickyMobile ? 'sticky' : setBreakpoint(header.breakIndex, ['initial', 'sticky'])\n } : !sticky && stickyMobile ? {\n top: 0,\n position: setBreakpoint(header.breakIndex, ['sticky', 'initial'])\n } : {\n position: 'relative'\n };\n return React.createElement(Box, Object.assign({}, {\n ref: ref,\n as: \"header\",\n id: \"site-header\",\n className: scrollClass,\n role: \"banner\",\n variant: variant,\n bg: bg\n }, rest, {\n __css: Object.assign({}, {\n zIndex: 100\n }, stickyPartial)\n }));\n});\n\nvar ColorButton = function ColorButton(ref) {\n var custom = ref.custom;\n var ref$1 = useThemeUI();\n var theme = ref$1.theme;\n var colorMode = ref$1.colorMode;\n var setColorMode = ref$1.setColorMode;\n var ref$2 = useOptions();\n var header = ref$2.header;\n var modes = theme.colors.modes ? [theme.initialColorModeName].concat(Object.keys(theme.colors.modes)) : [theme.initialColorModeName];\n\n var cycleMode = function cycleMode() {\n var i = modes.indexOf(colorMode);\n var next = modes[(i + 1) % modes.length];\n setColorMode(next);\n };\n\n return modes.length === 1 && header.colorToggle ? null : React.createElement(Box, {\n as: \"button\",\n title: \"Color Mode\",\n className: \"color-toggle\",\n 'aria-label': \"Toggle Color Mode\",\n variant: \"header.colorButton\",\n onClick: cycleMode,\n sx: {\n display: header.hideColorToggleOnMobile ? setBreakpoint(header.breakIndex, ['none', 'block']) : 'block'\n }\n }, custom || colorMode);\n};\n\nvar Overlay = function Overlay(ref) {\n var show = ref.show;\n var toggle = ref.toggle;\n var type = ref.type;\n var bp = ref.bp;\n var visibility = show ? 'visible' : 'hidden';\n var opacity = show ? 1 : 0;\n var partial = type === 'sideNav' ? {\n visibility: setBreakpoint(bp, [visibility, 'hidden']),\n opacity: setBreakpoint(bp, [opacity, 0])\n } : {\n visibility: visibility,\n opacity: opacity\n };\n return React.createElement(Box, {\n className: \"menu-overlay\",\n role: \"presentation\",\n onClick: toggle,\n sx: Object.assign({}, {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n bg: 'rgba(0, 0, 0, 0.15)',\n zIndex: 100\n }, partial, {\n willChange: 'opacity',\n transition: 'all ease .4s'\n })\n });\n};\n\nvar getAttributes = function getAttributes(isHeader, set) {\n return isHeader ? {\n onFocus: function onFocus(e) {\n return set(true);\n },\n onBlur: function onBlur(e) {\n return set(false);\n },\n onClick: function onClick(e) {\n return set(false);\n }\n } : null;\n};\n\nvar Dropdown = function Dropdown(ref) {\n var submenu = ref.submenu;\n var active = ref.active;\n var set = ref.set;\n var isHeader = ref.isHeader;\n var menuControls = ref.menuControls;\n var pathname = ref.pathname;\n return React.createElement(React.Fragment, null, !isHeader && React.createElement(Box, {\n as: \"button\",\n title: \"Expand Section\",\n className: \"submenu-toggle\",\n 'aria-expanded': active ? 'true' : 'false',\n 'aria-label': \"Expand Section\",\n onClick: function onClick() {\n return set(!active);\n },\n sx: {\n border: 'none',\n bg: 'transparent'\n }\n }, React.createElement(Box, {\n as: \"svg\",\n viewBox: \"0 0 16 16\",\n width: \"12\",\n height: \"12\",\n sx: {\n transition: 'transform ease .2s',\n transformOrigin: '50% 55%',\n transform: active ? 'rotate(180deg)' : null\n }\n }, React.createElement('path', {\n stroke: \"currentcolor\",\n strokeWidth: \"2\",\n fill: \"none\",\n d: \"M14 6 L8 12 L2 6\"\n }))), isHeader || !isHeader && active ? React.createElement(Box, {\n as: \"ul\",\n variant: isHeader ? 'header.submenu' : 'accordion',\n className: \"sub-menu \" + (active ? 'active' : ''),\n sx: isHeader ? {\n position: 'absolute',\n display: 'inline-block',\n width: 'max-content',\n top: '99%',\n left: 0,\n opacity: 0,\n visibility: 'hidden',\n m: 0,\n p: 0,\n zIndex: 1,\n listStyle: 'none',\n variant: 'eui_submenu',\n '&.active': {\n variant: 'eui_submenu.active'\n }\n } : {}\n }, submenu.map(function (ref, index) {\n var label = ref.label;\n var path = ref.path;\n var newTab = ref.newTab;\n var classes = ref.classes;\n if (classes === void 0) classes = '';\n var icon = ref.icon;\n return React.createElement(Box, {\n as: \"li\",\n key: index,\n className: \"menu-item \" + classes\n }, React.createElement('a', Object.assign({}, {\n href: path,\n className: pathname === path ? 'current' : undefined,\n target: newTab && '_blank',\n rel: newTab && 'noopener noreferrer',\n 'aria-label': icon ? label : undefined,\n 'aria-current': pathname === path ? 'page' : undefined\n }, getAttributes(isHeader, set), menuControls), icon && React.createElement('span', {\n className: \"submenu-icon\"\n }, icon), React.createElement('span', {\n className: \"submenu-text\"\n }, label)));\n })) : null);\n};\n\nvar getAttributes$1 = function getAttributes$1(isHeader, submenu, show, set) {\n return isHeader ? {\n onFocus: submenu && function (e) {\n return set(true);\n },\n onBlur: submenu && function (e) {\n return set(false);\n },\n 'aria-expanded': submenu ? show ? 'true' : 'false' : null\n } : null;\n};\n\nvar MenuItem = function MenuItem(ref) {\n var ref_data = ref.data;\n var label = ref_data.label;\n var path = ref_data.path;\n var newTab = ref_data.newTab;\n var submenu = ref_data.submenu;\n var classes = ref_data.classes;\n if (classes === void 0) classes = '';\n var icon = ref_data.icon;\n var caret = ref.caret;\n if (caret === void 0) caret = false;\n var menuControls = ref.menuControls;\n var pathname = ref.pathname;\n var isHeader = ref.isHeader;\n if (isHeader === void 0) isHeader = false;\n var ref$1 = useState(false);\n var show = ref$1[0];\n var set = ref$1[1];\n return React.createElement(Box, {\n as: \"li\",\n className: \"menu-item \" + classes,\n sx: isHeader ? {\n position: 'relative',\n display: 'inline-flex',\n '&:hover': {\n '.sub-menu': {\n variant: 'eui_submenu.active'\n }\n },\n '.menu-text:after': submenu && caret ? {\n content: '\"\"',\n display: 'inline-block',\n width: 0,\n height: 0,\n ml: '.4em',\n verticalAlign: '.25em',\n borderTop: '.25em solid',\n borderRight: '.25em solid transparent',\n borderLeft: '.25em solid transparent'\n } : null\n } : {}\n }, React.createElement('a', Object.assign({}, {\n href: path,\n className: pathname === path ? 'current' : undefined,\n target: newTab && '_blank',\n rel: newTab && 'noopener noreferrer',\n 'aria-label': icon ? label : null,\n 'aria-current': pathname === path ? 'page' : undefined\n }, menuControls, getAttributes$1(isHeader, submenu, show, set)), icon && React.createElement('span', {\n className: \"menu-icon\"\n }, icon), React.createElement('span', {\n className: \"menu-text\"\n }, label)), submenu ? React.createElement(Dropdown, {\n submenu: submenu,\n active: show,\n set: set,\n isHeader: isHeader,\n menuControls: menuControls,\n pathname: pathname\n }) : null);\n};\n\nvar Menu = React.memo(function (ref) {\n var menuItems = ref.menuItems;\n if (menuItems === void 0) menuItems = [];\n var pathname = ref.pathname;\n var ref$1 = useOptions();\n var header = ref$1.header;\n return React.createElement(Box, {\n as: \"nav\",\n className: \"nav-primary\",\n sx: {\n display: setBreakpoint(header.breakIndex, ['none', 'flex'])\n }\n }, React.createElement(Box, {\n as: \"ul\",\n variant: \"header.menu\",\n className: \"menu-primary\"\n }, menuItems.map(function (item, index) {\n return React.createElement(MenuItem, {\n key: index,\n data: item,\n caret: header.dropdown.caret,\n pathname: pathname,\n isHeader: true\n });\n })));\n});\n\nfunction objectWithoutProperties$2(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar getAttributes$2 = function getAttributes$2(menu, toggleMenu, sideMenu, toggleSideMenu, sideNavPrimary) {\n return sideNavPrimary ? {\n 'aria-expanded': sideMenu ? 'true' : 'false',\n onClick: toggleSideMenu\n } : {\n 'aria-expanded': menu ? 'true' : 'false',\n onClick: toggleMenu\n };\n};\n\nvar MenuButton = function MenuButton(props) {\n var ref = useMenu();\n var menu = ref[0];\n var toggleMenu = ref[1];\n var ref$1 = useSideNav();\n var sideMenu = ref$1[0];\n var toggleSideMenu = ref$1[1];\n var ref$2 = useOptions();\n var mobileMenu = ref$2.mobileMenu;\n var header = ref$2.header;\n var sideNav = ref$2.sideNav;\n var custom = props.custom;\n var visibleOnDesktop = props.visibleOnDesktop;\n if (visibleOnDesktop === void 0) visibleOnDesktop = mobileMenu.visibleOnDesktop;\n var closeIcon = props.closeIcon;\n var rest$1 = objectWithoutProperties$2(props, [\"custom\", \"visibleOnDesktop\", \"closeIcon\"]);\n var rest = rest$1;\n var visibility = visibleOnDesktop ? !sideNav.isPrimaryMobileNav ? {\n display: 'block'\n } : {\n display: 'none'\n } : {\n display: setBreakpoint(header.breakIndex, ['block', 'none'])\n };\n return React.createElement(Box, Object.assign({}, {\n as: \"button\",\n title: \"Menu\",\n className: \"menu-toggle\",\n 'aria-label': \"Toggle Menu\"\n }, getAttributes$2(menu, toggleMenu, sideMenu, toggleSideMenu, sideNav.isPrimaryMobileNav), rest, {\n variant: \"header.menuButton\",\n __css: Object.assign({}, visibility, {\n m: '0 auto',\n border: 'none',\n background: 'none',\n svg: {\n m: '0 auto'\n }\n })\n }), custom || React.createElement(Box, {\n as: \"svg\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n sx: {\n display: 'block',\n margin: 0,\n height: closeIcon ? 35 : 27\n }\n }, closeIcon ? React.createElement('path', {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n }) : React.createElement('path', {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n })));\n};\n\nvar WidgetArea = function WidgetArea(props) {\n var ref = useOptions();\n var header = ref.header;\n var custom = props.custom;\n var hideOnMobile = props.hideOnMobile;\n if (hideOnMobile === void 0) hideOnMobile = header.hideWidgetsOnMobile;\n return custom ? React.createElement(Box, {\n variant: \"header.widgets\",\n className: \"widget-area\",\n sx: {\n display: hideOnMobile ? setBreakpoint(header.breakIndex, ['none', 'flex']) : 'flex'\n }\n }, custom) : null;\n};\n\nfunction objectWithoutProperties$3(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Logo = function Logo(ref) {\n var children = ref.children;\n var rest = objectWithoutProperties$3(ref, [\"children\"]);\n var props = rest;\n return React.createElement(Box, Object.assign({}, {\n as: \"a\",\n href: \"/\",\n id: \"site-logo\",\n variant: \"header.logo\",\n 'aria-label': \"Home page\",\n sx: {\n display: 'flex'\n }\n }, props), children);\n};\n\nfunction objectWithoutProperties$4(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Basic = React.forwardRef(function (ref$1, ref) {\n var logo = ref$1.logo;\n if (logo === void 0) logo = 'Logo';\n var menu = ref$1.menu;\n var widgetArea = ref$1.widgetArea;\n var menuToggle = ref$1.menuToggle;\n var colorToggle = ref$1.colorToggle;\n var bp = ref$1.bp;\n var type = ref$1.type;\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_header';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'navbar';\n var rest = objectWithoutProperties$4(ref$1, [\"logo\", \"menu\", \"widgetArea\", \"menuToggle\", \"colorToggle\", \"bp\", \"type\", \"maxWidth\", \"variant\"]);\n var props = rest;\n return React.createElement(Flex, Object.assign({}, {\n ref: ref,\n variant: variant\n }, props, {\n __css: {\n variant: 'eui_header.default',\n maxWidth: maxWidth\n }\n }), React.createElement(Logo, null, logo), React.createElement(Flex, {\n sx: {\n alignItems: 'center',\n flex: type === 2 ? 1 : 'initial',\n justifyContent: type === 2 ? setBreakpoint(bp, ['flex-end', 'space-between']) : null\n }\n }, React.createElement(Menu, {\n menuItems: menu\n }), React.createElement(Flex, {\n sx: {\n alignItems: 'center'\n }\n }, React.createElement(WidgetArea, {\n custom: widgetArea\n }), React.createElement(MenuButton, {\n custom: menuToggle\n }), React.createElement(ColorButton, {\n custom: colorToggle\n }))));\n});\n\nfunction objectWithoutProperties$5(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Center = React.forwardRef(function (ref$1, ref) {\n var logo = ref$1.logo;\n if (logo === void 0) logo = 'Logo';\n var menu = ref$1.menu;\n var widgetArea = ref$1.widgetArea;\n var menuToggle = ref$1.menuToggle;\n var colorToggle = ref$1.colorToggle;\n var bp = ref$1.bp;\n var type = ref$1.type;\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_header';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'navbar';\n var rest = objectWithoutProperties$5(ref$1, [\"logo\", \"menu\", \"widgetArea\", \"menuToggle\", \"colorToggle\", \"bp\", \"type\", \"maxWidth\", \"variant\"]);\n var props = rest;\n var mid = Math.ceil(menu.length / 2);\n\n var renderBlock = function renderBlock() {\n return React.createElement(Flex, {\n sx: {\n position: setBreakpoint(bp, ['relative', 'absolute']),\n right: 0,\n alignItems: 'center'\n }\n }, React.createElement(WidgetArea, {\n custom: widgetArea\n }), React.createElement(MenuButton, {\n custom: menuToggle\n }), React.createElement(ColorButton, {\n custom: colorToggle\n }));\n };\n\n return React.createElement(Flex, Object.assign({}, {\n ref: ref,\n variant: variant\n }, props, {\n __css: {\n variant: 'eui_header.center',\n flexDirection: type === 1 ? setBreakpoint(bp, ['row', 'column']) : null,\n maxWidth: maxWidth\n }\n }), type === 1 ? React.createElement(React.Fragment, null, React.createElement(Flex, null, React.createElement(Logo, null, logo)), React.createElement(Flex, {\n sx: {\n alignItems: 'center'\n }\n }, React.createElement(Menu, {\n menuItems: menu\n }), renderBlock())) : React.createElement(React.Fragment, null, React.createElement(Menu, {\n menuItems: menu.slice(0, mid)\n }), React.createElement(Logo, null, logo), React.createElement(Menu, {\n menuItems: menu.slice(mid)\n }), renderBlock()));\n});\n\nfunction objectWithoutProperties$6(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Reverse = React.forwardRef(function (ref$1, ref) {\n var logo = ref$1.logo;\n if (logo === void 0) logo = 'Logo';\n var menu = ref$1.menu;\n var widgetArea = ref$1.widgetArea;\n var menuToggle = ref$1.menuToggle;\n var colorToggle = ref$1.colorToggle;\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_header';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'navbar';\n var rest = objectWithoutProperties$6(ref$1, [\"logo\", \"menu\", \"widgetArea\", \"menuToggle\", \"colorToggle\", \"maxWidth\", \"variant\"]);\n var props = rest;\n return React.createElement(Flex, Object.assign({}, {\n ref: ref,\n variant: variant\n }, props, {\n __css: {\n variant: 'eui_header.columns',\n maxWidth: maxWidth\n }\n }), React.createElement(Flex, {\n className: \"col-1\"\n }, React.createElement(Menu, {\n menuItems: menu\n }), React.createElement(MenuButton, {\n custom: menuToggle\n })), React.createElement(Flex, {\n className: \"col-2\"\n }, React.createElement(Logo, null, logo)), React.createElement(Flex, {\n className: \"col-3\"\n }, React.createElement(WidgetArea, {\n custom: widgetArea\n }), React.createElement(ColorButton, {\n custom: colorToggle\n })));\n});\n\nfunction objectWithoutProperties$7(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Minimal = React.forwardRef(function (ref$1, ref) {\n var logo = ref$1.logo;\n if (logo === void 0) logo = 'Logo';\n var widgetArea = ref$1.widgetArea;\n var menuToggle = ref$1.menuToggle;\n var colorToggle = ref$1.colorToggle;\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_header';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'navbar';\n var type = ref$1.type;\n var rest = objectWithoutProperties$7(ref$1, [\"logo\", \"widgetArea\", \"menuToggle\", \"colorToggle\", \"maxWidth\", \"variant\", \"type\"]);\n var props = rest;\n return React.createElement(Flex, Object.assign({}, {\n ref: ref,\n variant: variant\n }, props, {\n __css: {\n variant: type === 3 ? 'eui_header.columns' : 'eui_header.default',\n maxWidth: maxWidth\n }\n }), type === 1 ? React.createElement(React.Fragment, null, React.createElement(Logo, null, logo), React.createElement(Flex, {\n sx: {\n alignItems: 'center'\n }\n }, React.createElement(WidgetArea, {\n custom: widgetArea\n }), React.createElement(MenuButton, {\n custom: menuToggle,\n visibleOnDesktop: true\n }), React.createElement(ColorButton, {\n custom: colorToggle\n }))) : type === 2 ? React.createElement(React.Fragment, null, React.createElement(Flex, {\n sx: {\n alignItems: 'center'\n }\n }, React.createElement(MenuButton, {\n custom: menuToggle,\n visibleOnDesktop: true\n }), React.createElement(Logo, null, logo)), React.createElement(Flex, {\n sx: {\n alignItems: 'center'\n }\n }, React.createElement(WidgetArea, {\n custom: widgetArea\n }), React.createElement(ColorButton, {\n custom: colorToggle\n }))) : React.createElement(React.Fragment, null, React.createElement(Flex, {\n className: \"col-1\"\n }, React.createElement(MenuButton, {\n custom: menuToggle,\n visibleOnDesktop: true\n })), React.createElement(Flex, {\n className: \"col-2\"\n }, React.createElement(Logo, null, logo)), React.createElement(Flex, {\n className: \"col-3\"\n }, React.createElement(WidgetArea, {\n custom: widgetArea\n }), React.createElement(ColorButton, {\n custom: colorToggle\n }))));\n});\n\nfunction objectWithoutProperties$8(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Navbar = React.memo(function (ref) {\n var type = ref.type;\n var rest = objectWithoutProperties$8(ref, [\"type\"]);\n var props = rest;\n var ref$1 = useOptions();\n var navigation = ref$1.navigation;\n var header = ref$1.header;\n var setOptions = useOptionUpdater();\n\n if (type !== undefined && type !== navigation) {\n setOptions({\n navigation: type\n });\n }\n\n switch (navigation) {\n case 'center':\n return React.createElement(Center, Object.assign({}, {\n type: 1\n }, props, {\n bp: header.breakIndex\n }));\n\n case 'split':\n return React.createElement(Center, Object.assign({}, {\n type: 2\n }, props, {\n bp: header.breakIndex\n }));\n\n case 'reverse':\n return React.createElement(Reverse, props);\n\n case 'minimal':\n return React.createElement(Minimal, Object.assign({}, {\n type: 1\n }, props));\n\n case 'minimal-left':\n return React.createElement(Minimal, Object.assign({}, {\n type: 2\n }, props));\n\n case 'minimal-center':\n return React.createElement(Minimal, Object.assign({}, {\n type: 3\n }, props));\n\n case 'basic-left':\n return React.createElement(Basic, Object.assign({}, {\n type: 2\n }, props, {\n bp: header.breakIndex\n }));\n\n default:\n return React.createElement(Basic, props);\n }\n});\n\nfunction objectWithoutProperties$9(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar AccordionMenu = React.forwardRef(function (ref$1, ref) {\n var menu = ref$1.menu;\n if (menu === void 0) menu = [];\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'accordion-menu';\n var menuType = ref$1.menuType;\n var pathname = ref$1.pathname;\n var rest = objectWithoutProperties$9(ref$1, [\"menu\", \"variant\", \"menuType\", \"pathname\"]);\n var props = rest;\n var ref$2 = useOptions();\n var mobileMenu = ref$2.mobileMenu;\n var sideNav = ref$2.sideNav;\n var ref$3 = useMenu();\n var showMenu = ref$3[0];\n var toggleMenu = ref$3[1];\n var ref$4 = useSideNav();\n var showSideNav = ref$4[0];\n var toggleSideNav = ref$4[1];\n\n var getControls = function getControls() {\n if (menuType === 'mobile' && mobileMenu.closeOnRouteChange) {\n return {\n onClick: function onClick(e) {\n return toggleMenu(!showMenu);\n }\n };\n }\n\n if (menuType === 'sideNav' && sideNav.closeOnRouteChange) {\n return {\n onClick: function onClick(e) {\n return toggleSideNav(!showSideNav);\n }\n };\n }\n\n return undefined;\n };\n\n return React.createElement(Box, Object.assign({}, {\n ref: ref,\n as: \"ul\",\n variant: variant,\n className: \"accordion-menu\"\n }, props), menu.map(function (item, index) {\n return React.createElement(MenuItem, {\n key: index,\n data: item,\n menuControls: getControls(),\n pathname: pathname\n });\n }));\n});\nvar fullWidth = ['fade', 'fade-up', 'fade-down'];\n\nvar getTransition = function getTransition(active, type, width) {\n var opacity = type.includes('fade') ? active ? 1 : 0 : 1;\n var visibility = active ? 'visible' : 'hidden';\n var directionX = type.includes('right') ? {\n right: 0,\n width: width,\n transform: active ? null : 'translateX(100%)'\n } : {\n left: 0,\n width: width,\n transform: active ? null : 'translateX(-100%)'\n };\n\n var directionY = function directionY() {\n if (type !== 'fade') {\n var sign = type === 'fade-up' ? '' : '-';\n return {\n transform: !active ? \"translateY(\" + sign + \"20px)\" : null\n };\n }\n\n return null;\n };\n\n var size = fullWidth.includes(type) ? Object.assign({}, {\n width: '100%',\n left: 0\n }, directionY()) : directionX;\n return Object.assign({}, {\n opacity: opacity,\n visibility: visibility\n }, size);\n};\n\nvar MobileMenu = React.forwardRef(function (props, ref) {\n var ref$1 = useMenu();\n var show = ref$1[0];\n var toggleMenu = ref$1[1];\n var ref$2 = useOptions();\n var mobileMenu = ref$2.mobileMenu;\n var bg = props.bg;\n if (bg === void 0) bg = 'bg_mobileMenu';\n var variant = props.variant;\n if (variant === void 0) variant = 'mobileMenu';\n var width = props.width;\n if (width === void 0) width = mobileMenu.width;\n var transition = props.transition;\n if (transition === void 0) transition = mobileMenu.transition;\n var menu = props.menu;\n if (menu === void 0) menu = [];\n var pathname = props.pathname;\n var children = props.children;\n return React.createElement(React.Fragment, null, mobileMenu.closeOnBlur && !fullWidth.includes(transition) && React.createElement(Overlay, {\n show: show,\n toggle: toggleMenu\n }), React.createElement(Box, Object.assign({}, {\n ref: ref,\n id: \"mobile-menu\",\n variant: variant\n }, props, {\n __css: Object.assign({}, {\n position: 'fixed',\n bg: bg,\n top: 0,\n bottom: 0,\n zIndex: 100,\n willChange: 'transform opacity',\n transition: 'all ease .3s'\n }, getTransition(show, transition, width))\n }), mobileMenu.defaultCloseButton ? React.createElement(MenuButton, {\n sx: {\n position: 'absolute',\n top: 10,\n right: 10,\n zIndex: 1\n },\n closeIcon: true\n }) : null, children || React.createElement(AccordionMenu, {\n menu: menu,\n menuType: \"mobile\",\n pathname: pathname\n })));\n});\n\nfunction objectWithoutProperties$a(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar format = function format(value) {\n return isNaN(value) ? value : value + \"px\";\n}; // TODO - Figure out padding top vs Main\n\n\nvar Content = React.forwardRef(function (ref$1, ref) {\n var layout = ref$1.layout;\n var rest = objectWithoutProperties$a(ref$1, [\"layout\"]);\n var props = rest;\n var ref$2 = useOptions();\n var content = ref$2.content;\n var ref$3 = useLayout();\n var baseLayout = ref$3[0];\n var setLayout = ref$3[1];\n\n if (layout !== undefined && layout !== baseLayout) {\n setLayout(layout);\n }\n\n var sidebarPartial = baseLayout === 'sidebar-content' ? {\n gridTemplateColumns: function gridTemplateColumns(t) {\n return setBreakpoint(content.breakIndex, [\"1fr\", format(t.sizes.width_sidebar) + \" 1fr\"]);\n }\n } : baseLayout === 'content-sidebar' ? {\n gridTemplateColumns: function gridTemplateColumns(t) {\n return setBreakpoint(content.breakIndex, [\"1fr\", \"1fr \" + format(t.sizes.width_sidebar)]);\n }\n } : null;\n return React.createElement(Box, Object.assign({}, {\n ref: ref,\n id: \"site-inner\"\n }, props, {\n __css: Object.assign({}, {\n variant: \"eui_layout.\" + baseLayout\n }, sidebarPartial, {\n minHeight: '80vh'\n })\n }));\n});\n\nfunction objectWithoutProperties$b(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Main = React.forwardRef(function (ref$1, ref) {\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'main';\n var rest = objectWithoutProperties$b(ref$1, [\"variant\"]);\n var props = rest;\n return React.createElement(Box, Object.assign({}, {\n ref: ref,\n as: \"main\",\n id: \"content\",\n role: \"main\",\n variant: variant\n }, props, {\n __css: {\n flex: 1\n }\n }));\n});\n\nfunction objectWithoutProperties$c(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar format$1 = function format$1(value) {\n return isNaN(value) ? value : value + \"px\";\n};\n\nvar SideNav = React.forwardRef(function (ref$1, ref) {\n var bg = ref$1.bg;\n if (bg === void 0) bg = 'bg_sideNav';\n var toggleVariant = ref$1.toggleVariant;\n var customToggle = ref$1.customToggle;\n if (customToggle === void 0) customToggle = 'Toggle';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'sideNav';\n var menu = ref$1.menu;\n var pathname = ref$1.pathname;\n var children = ref$1.children;\n var rest = objectWithoutProperties$c(ref$1, [\"bg\", \"toggleVariant\", \"customToggle\", \"variant\", \"menu\", \"pathname\", \"children\"]);\n var props = rest;\n var ref$2 = useSideNav();\n var active = ref$2[0];\n var setActive = ref$2[1];\n var ref$3 = useOptions();\n var layout = ref$3.layout;\n var sideNav = ref$3.sideNav;\n var bp = sideNav.breakIndex;\n\n var getTransform = function getTransform(width) {\n var w = Array.isArray(width) ? width[bp] : width;\n var shift = layout === 'sidenav-content' ? -w : w;\n return active ? \"translateX(0)\" : \"translateX(\" + format$1(shift) + \")\";\n };\n\n return React.createElement(React.Fragment, null, sideNav.closeOnBlur && React.createElement(Overlay, {\n show: active,\n toggle: setActive,\n type: \"sideNav\",\n bp: sideNav.breakIndex\n }), React.createElement(Box, Object.assign({}, {\n ref: ref,\n variant: variant,\n id: \"side-nav\",\n role: \"navigation\"\n }, props, {\n __css: {\n bg: bg,\n position: setBreakpoint(bp, ['fixed', 'relative']),\n top: 0,\n bottom: 0,\n zIndex: setBreakpoint(bp, [100, 0]),\n width: function width(t) {\n return t.sizes.width_sideNav;\n },\n willChange: 'transform',\n transform: function transform(t) {\n return setBreakpoint(bp, [getTransform(t.sizes.width_sideNav), 'none']);\n },\n transition: 'transform ease .3s'\n }\n }), children || React.createElement(AccordionMenu, {\n menu: menu,\n menuType: \"sideNav\",\n pathname: pathname\n })), sideNav.floatingToggle ? React.createElement(Box, {\n as: \"button\",\n id: \"toggle-sidenav\",\n title: \"Toggle SideNav\",\n 'aria-label': \"Toggle side navigation\",\n onClick: setActive,\n variant: toggleVariant,\n sx: {\n position: 'fixed',\n display: setBreakpoint(bp, ['inline-block', 'none']),\n bottom: 30,\n zIndex: 100\n }\n }, customToggle) : null);\n});\nvar Sidebar = React.forwardRef(function (props, ref) {\n return React.createElement(Box, Object.assign({}, {\n ref: ref,\n as: props.as || 'aside',\n id: \"primary-sidebar\",\n role: \"complementary\"\n }, props));\n});\n\nfunction objectWithoutProperties$d(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Footer = React.forwardRef(function (ref$1, ref) {\n var bg = ref$1.bg;\n if (bg === void 0) bg = 'bg_footer';\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_footer';\n var variant = ref$1.variant;\n if (variant === void 0) variant = 'footer';\n var children = ref$1.children;\n var rest = objectWithoutProperties$d(ref$1, [\"bg\", \"maxWidth\", \"variant\", \"children\"]);\n var props = rest;\n return React.createElement(Box, Object.assign({}, {\n ref: ref,\n as: \"footer\",\n id: \"footer\",\n role: \"contentinfo\",\n variant: variant,\n bg: bg\n }, props), React.createElement(Flex, {\n __css: {\n maxWidth: maxWidth,\n mx: 'auto'\n }\n }, children));\n});\n\nfunction objectWithoutProperties$e(obj, exclude) {\n var target = {};\n\n for (var k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k];\n }\n\n return target;\n}\n\nvar Section = React.forwardRef(function (ref$1, ref) {\n var maxWidth = ref$1.maxWidth;\n if (maxWidth === void 0) maxWidth = 'maxWidth_section';\n var bg = ref$1.bg;\n var background = ref$1.background;\n var children = ref$1.children;\n var rest = objectWithoutProperties$e(ref$1, [\"maxWidth\", \"bg\", \"background\", \"children\"]);\n var props = rest;\n return React.createElement(Box, {\n ref: ref,\n as: props.as || 'section',\n bg: bg,\n sx: {\n background: background,\n width: '100%'\n }\n }, React.createElement(Box, Object.assign({}, props, {\n __css: {\n maxWidth: maxWidth,\n mx: 'auto'\n }\n }), children));\n});\n\nvar SiteInner = function SiteInner(ref) {\n var sideNav = ref.sideNav;\n var sidebar = ref.sidebar;\n var menu = ref.menu;\n var children = ref.children;\n var ref$1 = useOptions();\n var layout = ref$1.layout;\n\n switch (layout) {\n case 'content-sidebar':\n return React.createElement(Content, null, React.createElement(Main, null, children), React.createElement(Sidebar, null, sidebar));\n\n case 'sidebar-content':\n return React.createElement(Content, null, React.createElement(Sidebar, null, sidebar), React.createElement(Main, null, children));\n\n case 'content-sideNav':\n return React.createElement(Content, null, React.createElement(Main, null, children), React.createElement(SideNav, {\n menu: menu,\n customToggle: sideNav[1],\n pathname: sideNav[2]\n }, sideNav[0]));\n\n case 'sideNav-content':\n return React.createElement(Content, null, React.createElement(SideNav, {\n menu: menu,\n customToggle: sideNav[1],\n pathname: sideNav[2]\n }, sideNav[0]), React.createElement(Main, null, children));\n\n default:\n return React.createElement(Content, null, React.createElement(Main, null, children));\n }\n};\n\nvar Template$$1 = function Template$$1(ref) {\n var theme = ref.theme;\n var options = ref.options;\n var components = ref.components;\n var topbar = ref.topbar;\n var headerWidgets = ref.headerWidgets;\n var menuToggle = ref.menuToggle;\n var colorToggle = ref.colorToggle;\n var logo = ref.logo;\n var menu = ref.menu;\n var mobileMenu = ref.mobileMenu;\n if (mobileMenu === void 0) mobileMenu = 'default';\n var sideNav = ref.sideNav;\n var sideNavToggle = ref.sideNavToggle;\n var sidebar = ref.sidebar;\n var footer = ref.footer;\n var pathname = ref.pathname;\n var children = ref.children;\n return React.createElement(Layout, {\n theme: theme,\n options: options,\n components: components\n }, topbar && React.createElement(Topbar, null, topbar), React.createElement(Header, null, React.createElement(Navbar, {\n logo: logo,\n menu: menu,\n widgetArea: headerWidgets,\n menuToggle: menuToggle,\n colorToggle: colorToggle,\n pathname: pathname\n }), mobileMenu === 'default' ? React.createElement(MobileMenu, {\n menu: menu\n }) : React.isValidElement(mobileMenu) ? React.createElement(MobileMenu, null, mobileMenu) : null), React.createElement(SiteInner, {\n sideNav: [sideNav, sideNavToggle, pathname],\n sidebar: sidebar,\n menu: menu\n }, children), footer && React.createElement(Footer, null, footer));\n};\n\nfunction useMakerUI() {\n var ref = useExtensions();\n var state = ref[0];\n var setState = ref[1];\n var ref$1 = useThemeUI();\n var theme = ref$1.theme;\n var colorMode = ref$1.colorMode;\n var setColorMode = ref$1.setColorMode;\n var options = useOptions();\n\n function extendTheme(newTheme, key) {\n // Check if the component's key has already been added before updating context / causing a re-render\n if (key && state.themeKeys.includes(key)) {\n return;\n }\n\n return setState(function (s) {\n return Object.assign({}, s, {\n extendedTheme: cjs(s.extendedTheme, validate(newTheme))\n });\n });\n }\n\n function extendOptions(newOptions, key) {\n if (key && state.themeKeys.includes(key)) {\n return;\n }\n\n return setState(function (s) {\n return Object.assign({}, s, {\n extendedOptions: cjs(s.extendedOptions, newOptions)\n });\n });\n }\n\n return {\n theme: theme,\n colorMode: colorMode,\n setColorMode: setColorMode,\n extendTheme: extendTheme,\n options: options,\n extendOptions: extendOptions\n };\n}\n\nexport { useOptions, useMenu, useSideNav, setBreakpoint, generateId, Layout, Topbar, Header, Navbar, MobileMenu, Content, Main, SideNav, Sidebar, Footer, Section, Template$$1 as Template, AccordionMenu, useMakerUI };","export const menu = [\n {\n label: 'SOLUCIONES',\n path: '/#soluciones',\n },\n {\n label: 'CASOS DE ÉXITO',\n path: '/#exito',\n },\n {\n label: 'CONTÁCTENOS',\n path: '/#contacto',\n }\n]\n","/**\n * NOTE\n *\n * - These are all of the default Maker UI options available in v0.4.2\n * - Depending on your layout, you might only need to access a few of these\n *\n * See: https://maker-ui.dev/options for details on each\n */\n\nexport default {\n navigation: 'basic',\n layout: 'content',\n topbar: {\n maxWidth: 1300,\n hideOnMobile: false,\n breakIndex: 0,\n },\n header: {\n maxWidth: 1300,\n sticky: true,\n stickyMobile: true,\n stickyScroll: false,\n scroll: {\n toggleClass: false,\n scrollTop: 200,\n className: 'sticky',\n },\n hideWidgetsOnMobile: true,\n dropdown: {\n caret: true,\n transition: 'scale',\n },\n breakIndex: 0,\n },\n mobileMenu: {\n width: '60vw',\n transition: 'slideLeft',\n visibleOnDesktop: false,\n defaultCloseButton: false,\n closeOnBlur: true,\n closeOnRouteChange: false,\n },\n sideNav: {\n width: 300,\n isPrimaryMobileNav: false,\n floatingToggle: true,\n closeOnBlur: true,\n closeOnRouteChange: true,\n breakIndex: 0,\n },\n content: {\n maxWidth: '100%',\n maxWidthSection: '100%',\n sidebarGap: 30,\n breakIndex: 0,\n },\n sidebar: {\n width: 300,\n },\n footer: {\n maxWidth: 1200,\n },\n a11y: {\n skiplinks: true,\n },\n}\n","export default {\n initialColorModeName: 'light',\n colors: {\n text: '#333',\n background: '#ffffff',\n primary: '#352045',\n secondary: '#642596',\n border: '#e6e6e6',\n navlink: '#333',\n bg_topbar: '',\n bg_header: '#fff',\n bg_mobileMenu: '#fff',\n bg_sideNav: '',\n bg_footer: '#352045',\n },\n fonts: {\n body: 'Bahnschrift Regular, sans-serif',\n heading: 'Bahnschrift Regular, sans-serif',\n },\n breakpoints: ['768px', '960px', '1240px'],\n styles: {\n root: {\n fontFamily: 'body',\n a: {\n textDecoration: 'none',\n },\n },\n },\n // ---------------------------\n //\n // Maker UI layout variants\n //\n // See: https://maker-ui.dev/layout-components for a complete list of variants\n //\n // ---------------------------\n header: {\n py: 15,\n px: 3,\n borderBottom: '1px solid',\n borderColor: 'border',\n fontFamily: 'heading',\n boxShadow: 'rgba(35, 68, 101, 0.1) 0px 4px 4px, rgba(35, 68, 101, 0.1) 0px 4px 16px',\n logo: {\n fontSize: [16, 24],\n fontWeight: 'bold',\n a: { color: 'navlink' },\n },\n menu: {\n px: 20,\n display: 'flex',\n a: {\n fontSize: 4,\n display: 'flex',\n alignItems: 'center',\n color: 'navlink',\n p: 3,\n '.menu-link-icon': {\n display: 'flex',\n mr: '5px',\n fill: 'currentColor',\n },\n },\n },\n navbar: {},\n submenu: {\n bg: 'bg_header',\n boxShadow: '0px 4px 16px rgba(46, 41, 51, 0.08)',\n border: t => `1px solid ${t.colors.border}`,\n borderBottom: 'none',\n a: {\n px: 30,\n color: 'text',\n borderBottom: t => `1px solid ${t.colors.border}`,\n transition: 'all ease .3s',\n '&:hover': {\n bg: 'background',\n },\n },\n },\n menuButton: {},\n widgets: {},\n },\n mobileNav: {},\n sideNav: {},\n main: {\n titleBorder: {\n fontSize: [25, 35],\n mb: [10, 20],\n textAlign: 'center',\n }\n },\n buttons: {\n primary: {\n fontWeight: 'bold',\n fontFamily: 'body',\n py: 15,\n px: 20,\n color: 'white',\n bg: '#398CCB',\n '&:hover': {\n cursor: 'pointer',\n color: 'white',\n bg: '#5aa2e3',\n },\n },\n secondary: {\n fontWeight: 'bold',\n fontFamily: 'body',\n py: 15,\n px: 20,\n color: 'white',\n bg: '#ea504c',\n '&:hover': {\n cursor: 'pointer',\n color: 'white',\n bg: '#fc7371',\n },\n },\n },\n footer: {\n textAlign: 'center',\n color: 'white',\n p: {\n width: '100%'\n },\n a: {\n color: 'white'\n }\n }\n}\n","/** @jsx jsx */\nimport { config } from '@fortawesome/fontawesome-svg-core'\nimport { Link } from \"gatsby\"\nimport { Content, Footer, Header, Layout, Main, MobileMenu, Navbar } from 'maker-ui'\nimport { Box, jsx } from 'theme-ui'\nimport logo from '../../static/images/logos/icomm_logo.png'\nimport { menu } from '../config/menus'\nimport options from '../config/options'\nimport theme from '../config/theme'\n\nconfig.autoAddCss = false\n\nexport default ({ children, location }) => (\n \n
\n \n }\n menu={menu}\n />\n \n
\n \n
\n {children}\n
\n
\n \n \n © 2022 iComm Solutions S.A.S.\n
\n Powered by \n Inappsis\n \n
\n Política de Tratamiento de Datos Personales\n
\n \n
\n)","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n\n _this.scrollListener = function () {\n var key = _this.props.location.key;\n\n if (key) {\n _this._stateStorage.save(_this.props.location, key, window.scrollY);\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (hash && scrollPosition === 0) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","import 'bootstrap/dist/css/bootstrap.min.css';\nimport './src/styles/global.css';\n\nexport const onClientEntry = async () => {\n // IntersectionObserver polyfill for gatsby-background-image (Safari, IE)\n if (!(`IntersectionObserver` in window)) {\n await import(`intersection-observer`)\n console.log(`# IntersectionObserver is polyfilled!`)\n }\n}\n\nexport const shouldUpdateScroll = ({\n routerProps: { location }\n}) => {\n if (typeof window !== `undefined`) {\n if (location.hash && location.hash !== '') {\n const id = location.hash.slice(1);\n const yOffset = -60;\n const element = document.getElementById(id);\n if (element) {\n const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n }\n } else {\n window.scrollTo(0, 0);\n }\n }\n return false;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"iComm Solutions\",\"short_name\":\"iComm\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#ffffff\",\"display\":\"standalone\",\"icon\":\"static/images/logos/icomm_icon.png\",\"crossOrigin\":\"use-credentials\",\"cache_busting_mode\":\"query\",\"include_favicon\":true,\"legacy\":true,\"theme_color_in_head\":true,\"cacheDigest\":\"e47799238ec664700bc1946d83328cf2\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-layout/gatsby-browser.js'),\n options: {\"plugins\":[],\"component\":\"/home/runner/work/icomm-landing-frontend/icomm-landing-frontend/src/components/layout.js\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-analytics/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingId\":\"UA-179150691-1\",\"head\":false,\"anonymize\":true,\"respectDNT\":true,\"pageTransitionDelay\":0,\"defer\":false,\"cookieDomain\":\"i-comm.co\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","/* 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 default murmur2;","var unitlessKeys = {\n animationIterationCount: 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 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};\nexport default unitlessKeys;","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\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 = 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\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.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 = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\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, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\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], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\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, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\n\nvar serializeStyles = function 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, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[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], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\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 += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-privacy-policy-js\": () => import(\"./../../../src/pages/privacy-policy.js\" /* webpackChunkName: \"component---src-pages-privacy-policy-js\" */),\n \"component---src-pages-tos-js\": () => import(\"./../../../src/pages/tos.js\" /* webpackChunkName: \"component---src-pages-tos-js\" */)\n}\n\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nmodule.exports = deepmerge_1;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var isBrowser = \"object\" !== 'undefined';\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\n\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { globalHistory } from \"@reach/router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nfunction maybeRedirect(pathname) {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n let { pathname } = parsePath(to)\n const redirect = redirectMap[pathname]\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath\n pathname = parsePath(to).pathname\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n console.log(`Site has changed on server. Reloading browser`)\n window.location = pathname\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => this._stateStorage.read(args),\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n\n // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n componentDidUpdate(prevProps, prevState, shouldFireRouteUpdate) {\n if (shouldFireRouteUpdate) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n getSnapshotBeforeUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n\n return false\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(nextProps.location.pathname)\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (process.env.NODE_ENV !== `production` && !this.state.pageResources) {\n throw new Error(\n `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n )\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n
\n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). But\n // only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => {SiteRoot}\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context?.[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nfunction unstable_collectionGraphql() {\n // TODO: Strip this out of the component and throw error if it gets called\n return null\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n // Experimental API\n unstable_collectionGraphql,\n}\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a