{"version":3,"sources":["webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://gatsby-starter-default/./node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/factoryWithThrowingShims.js","webpack://gatsby-starter-default/./node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/index.js","webpack://gatsby-starter-default/./node_modules/@fortawesome/react-fontawesome/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://gatsby-starter-default/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://gatsby-starter-default/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useCommittedRef.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useEventCallback.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useMounted.js","webpack://gatsby-starter-default/./node_modules/bail/index.js","webpack://gatsby-starter-default/./node_modules/classnames/index.js","webpack://gatsby-starter-default/./node_modules/extend/index.js","webpack://gatsby-starter-default/./node_modules/mdast-add-list-metadata/index.js","webpack://gatsby-starter-default/./node_modules/mdast-add-list-metadata/node_modules/unist-util-visit-parents/index.js","webpack://gatsby-starter-default/./node_modules/mdast-util-from-markdown/dist/index.js","webpack://gatsby-starter-default/./node_modules/mdast-util-from-markdown/index.js","webpack://gatsby-starter-default/./node_modules/mdast-util-to-string/index.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-alpha.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-alphanumeric.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-atext.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-control.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-digit.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-hex-digit.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/ascii-punctuation.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/markdown-line-ending-or-space.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/markdown-line-ending.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/markdown-space.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/unicode-punctuation.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/character/unicode-whitespace.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/assign.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/from-char-code.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/has-own-property.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/html-block-names.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/html-raw-names.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/splice.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constant/unicode-punctuation-regex.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/constructs.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/initialize/content.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/initialize/document.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/initialize/flow.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/initialize/text.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/parse.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/postprocess.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/preprocess.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/attention.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/autolink.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/block-quote.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/character-escape.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/character-reference.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/code-fenced.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/code-indented.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/code-text.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/content.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/definition.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/factory-destination.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/factory-label.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/factory-space.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/factory-title.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/factory-whitespace.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/hard-break-escape.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/heading-atx.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/html-flow.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/html-text.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/label-end.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/label-start-image.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/label-start-link.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/line-ending.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/list.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/partial-blank-line.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/setext-underline.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/tokenize/thematic-break.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/chunked-push.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/chunked-splice.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/classify-character.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/combine-extensions.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/create-tokenizer.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/miniflat.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/move-point.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/normalize-identifier.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/prefix-size.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/regex-check.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/resolve-all.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/safe-from-int.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/serialize-chunks.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/shallow.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/size-chunks.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/slice-chunks.js","webpack://gatsby-starter-default/./node_modules/micromark/dist/util/subtokenize.js","webpack://gatsby-starter-default/./node_modules/parse-entities/decode-entity.browser.js","webpack://gatsby-starter-default/./node_modules/prop-types-extra/lib/all.js","webpack://gatsby-starter-default/./node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useUpdateEffect.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useWillUnmount.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useUpdatedRef.js","webpack://gatsby-starter-default/./node_modules/@restart/hooks/esm/useTimeout.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/CarouselCaption.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/CarouselItem.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/Carousel.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/ElementChildren.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/SafeAnchor.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/ThemeProvider.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/createChainedFunction.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/camelize.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/createWithBsPrefix.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/transitionEnd.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/triggerEvent.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/transitionEndListener.js","webpack://gatsby-starter-default/./node_modules/react-bootstrap/esm/triggerBrowserReflow.js","webpack://gatsby-starter-default/./node_modules/react-fast-compare/index.js","webpack://gatsby-starter-default/./node_modules/react-helmet/es/Helmet.js","webpack://gatsby-starter-default/./node_modules/react-is/cjs/react-is.production.min.js","webpack://gatsby-starter-default/./node_modules/react-is/index.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/ast-to-react.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/get-definitions.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/plugins/disallow-node.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/plugins/naive-html.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/react-markdown.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/renderers.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/symbols.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/uri-transformer.js","webpack://gatsby-starter-default/./node_modules/react-markdown/lib/wrap-table-rows.js","webpack://gatsby-starter-default/./node_modules/react-side-effect/lib/index.js","webpack://gatsby-starter-default/./node_modules/react-transition-group/esm/config.js","webpack://gatsby-starter-default/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://gatsby-starter-default/./node_modules/react-transition-group/esm/Transition.js","webpack://gatsby-starter-default/./node_modules/remark-parse/index.js","webpack://gatsby-starter-default/./node_modules/trough/index.js","webpack://gatsby-starter-default/./node_modules/trough/wrap.js","webpack://gatsby-starter-default/./node_modules/uncontrollable/lib/esm/utils.js","webpack://gatsby-starter-default/./node_modules/uncontrollable/lib/esm/hook.js","webpack://gatsby-starter-default/./node_modules/unified/index.js","webpack://gatsby-starter-default/./node_modules/unified/node_modules/is-buffer/index.js","webpack://gatsby-starter-default/./node_modules/unified/node_modules/is-plain-obj/index.js","webpack://gatsby-starter-default/./node_modules/unist-util-is/convert.js","webpack://gatsby-starter-default/./node_modules/unist-util-stringify-position/index.js","webpack://gatsby-starter-default/./node_modules/unist-util-visit-parents/color.browser.js","webpack://gatsby-starter-default/./node_modules/unist-util-visit-parents/index.js","webpack://gatsby-starter-default/./node_modules/unist-util-visit/index.js","webpack://gatsby-starter-default/./node_modules/vfile-message/index.js","webpack://gatsby-starter-default/./node_modules/vfile/index.js","webpack://gatsby-starter-default/./node_modules/vfile/lib/core.js","webpack://gatsby-starter-default/./node_modules/vfile/lib/index.js","webpack://gatsby-starter-default/./node_modules/vfile/lib/minpath.browser.js","webpack://gatsby-starter-default/./node_modules/vfile/lib/minproc.browser.js","webpack://gatsby-starter-default/./node_modules/vfile/node_modules/is-buffer/index.js","webpack://gatsby-starter-default/./node_modules/xtend/immutable.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/canUseDOM.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/addEventListener.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/getComputedStyle.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/ownerWindow.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/hyphenate.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/hyphenateStyle.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/isTransform.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/css.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/removeEventListener.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/listen.js","webpack://gatsby-starter-default/./node_modules/dom-helpers/esm/ownerDocument.js","webpack://gatsby-starter-default/./src/components/font-awesome.js","webpack://gatsby-starter-default/./src/utils/querys/globalConfig.js","webpack://gatsby-starter-default/./src/components/seo.js","webpack://gatsby-starter-default/./src/context/themeContext.js","webpack://gatsby-starter-default/./node_modules/warning/warning.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread2","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","_defineProperties","descriptor","configurable","writable","value","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","o","minLen","n","toString","slice","test","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","Proxy","get","prop","PREFIX_TO_STYLE","STYLE_TO_PREFIX","solid","regular","light","thin","duotone","brands","kit","PREFIX_TO_LONG_STYLE","fab","fad","fak","fal","far","fas","fat","fass","fasr","fasl","fast","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","900","400","normal","300","100","oneToTen","oneToTwenty","concat","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","Set","map","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","set","_onChangeCb","cb","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","nextUniqueId","id","Math","random","toArray","classArray","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","css","dcp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","loaded","domready","fn","setTimeout","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","readyState","listener","removeEventListener","subject","initialValue","thisContext","result","undefined","a","b","c","bindInternal4","toHex","unicode","decoded","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","alias","aliases","hasRegular","autoFetchSvg","shimLookups","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","v","canonical","rest","aliasIconName","Library","instance","Constructor","_classCallCheck","definitions","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","longPrefix","definition","0","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","args","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","Promise","reject","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","parse","_icon","match","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","_params$icons","main","mask","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","console","error","maybeNotifyMissing","noop$1","p","preamble","end","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","_abstract","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","_abstract2","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","type","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f","prefixesDomQuery","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","_ref3","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","toLowerCase","_hexValueFromContent","index","second","first","cleaned","codePoint","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","meta","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","ALL_SPACE","fillBlack","force","nextPlugins","mixoutsTo","k","plugin","tk","sk","registerPlugins","pseudoElements2svg","unwatch","bootstrap","disconnect","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","path","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","r","opacity","symbolData","config$1","library$1","parse$1","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","camelize","chr","substr","_excluded","styleToObject","pair","charAt","normalizeIconArgs","objectWithKey","FontAwesomeIcon","ref","iconArgs","maskArgs","className","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","renderedIcon","_console","log","extraProps","defaultProps","convertCurry","displayName","propTypes","convert","mixins","attrs","_extraProps$style","existingStyle","remaining","useRef","useEffect","current","useEventCallback","useCallback","useMounted","mounted","isMounted","hasOwn","classNames","arg","argType","default","toStr","gOPD","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","extend","src","copy","copyIsArray","clone","deep","visitWithParents","ast","listNode","parents","depth","ordered","tree","visitor","stack","one","parent","pop","encoding","settings","extensions","extension","configure","transforms","canContainEols","enter","autolink","opener","link","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","heading","blockQuote","characterEscape","characterReference","codeFenced","codeFlow","codeFencedFenceInfo","buffer","codeFencedFenceMeta","codeIndented","codeText","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","hardBreakEscape","hardBreak","hardBreakTrailing","htmlFlow","htmlFlowData","htmlText","htmlTextData","image","label","listItemValue","onenterlistitemvalue","listOrdered","list","onenterlistordered","listUnordered","paragraph","reference","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","exit","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","lineEnding","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","compile","events","handler","tokenStack","listStack","context","resume","setData","getData","prepareList","own","sliceSerialize","stringifyPosition","start","point","line","column","tailIndex","lineIndex","tailEvent","event","firstBlankLineIndex","atMarker","containerBalance","listSpread","_spread","splice","create","and","open","token","close","lang","identifier","normalizeIdentifier","url","siblings","tail","referenceType","fragment","alt","safeFromInt","decode","spread","checked","compiler","postprocess","write","preprocessor","left","asciiAlpha","regexCheck","asciiAlphanumeric","asciiAtext","code","asciiDigit","asciiHexDigit","asciiPunctuation","unicodePunctuationRegex","unicodePunctuation","unicodeWhitespace","fromCharCode","String","text$1","attention","headingAtx","labelEnd","labelStartImage","labelStartLink","setextUnderline","42","43","45","48","49","50","51","52","53","54","55","56","57","62","contentInitial","91","flowInitial","32","flow","35","60","61","95","96","126","38","92","33","93","insideSpan","null","resolver","disable","markdownLineEnding","factorySpace","tokenize","effects","previous","contentStart","attempt","constructs","consume","lineStart","contentType","partialBlankLine","inspectResult","childFlow","childToken","self","continued","inspectConstruct","ok","subcontinued","inspectStart","containerState","continuation","inspectContinue","inspectLess","currentConstruct","concrete","flowContinue","inspectDone","interrupt","interruptible","containerConstruct","inspectFlowEnd","_closeFlow","lazy","lazyFlowConstruct","check","inspectLazy","flowEnd","partial","documentContinue","documentContinued","flowStart","containerContinue","exitContainers","now","_tokenizer","continueFlow","documentAfterPeek","defineSkip","sliceStream","nok","afterConstruct","shallow","initializeFactory","resolveAll","createResolver","field","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","chunk","bufferIndex","tabs","eventIndex","_index","_bufferIndex","combineExtensions","createTokenizer","miniflat","initializer","subtokenize","search","atCarriageReturn","startPosition","endPosition","lastIndex","exec","ceil","chunkedPush","chunkedSplice","classifyCharacter","movePoint","marker","before","sequence","after","_open","_close","group","openingSequence","closingSequence","use","nextEvents","asciiControl","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","markdownSpace","_container","decodeEntity","_interopDefaultLegacy","decodeEntity__default","max","numeric","markdownLineEndingOrSpace","prefixSize","closingFenceConstruct","closingSequenceStart","sizeOpen","closingSequenceEnd","initialPrefix","sequenceOpen","infoOpen","openAfter","info","infoAfter","contentContinue","indentedContentConstruct","afterPrefix","gap","tailExitIndex","headEnterIndex","contentEnd","continuationConstruct","prefixed","factoryDestination","factoryLabel","factoryWhitespace","factoryTitle","labelAfter","titleConstruct","literalType","literalMarkerType","rawType","stringType","limit","Infinity","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","markerType","labelEscape","atFirstTitleBreak","atTitleBreak","titleEscape","seen","fenceOpenInside","headingBreak","htmlBlockNames","htmlRawNames","kind","startTag","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","continuationRawEndTag","resolveTo","returnState","declarationOpen","instruction","tagOpen","commentOpen","cdataOpen","declaration","commentStart","commentStartDash","commentClose","atLineEnding","cdata","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStart","_balanced","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","media","_used","destinationAfter","between","afterLabel","sizeChunks","initialSize","inside","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","furtherBlankLines","notInCurrentItem","indentConstruct","items","parameters","chunkStart","unshift","right","existing","serializeChunks","sliceChunks","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","fields","constructFactory","construct","addResult","onsuccessfulcheck","state","chunkIndex","go","restore","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","regex","called","base","atTab","view","startIndex","startBufferIndex","endIndex","endBufferIndex","subcontent","stream","entered","adjust","startPositions","tokenizer","childEvents","jumps","gaps","isInFirstContentOfListItem","_gfmTasklistFirstContentOfListItem","otherIndex","otherEvent","subevents","more","_movePreviousLineEndings","el","characters","char","entity","textContent","validators","allPropTypes","validator","_createChainableTypeChecker2","_createChainableTypeChecker","__esModule","validate","checkType","componentNameSafe","propFullNameSafe","chainedCheckType","deps","isFirst","useWillUnmount","valueRef","onUnmount","MAX_DELAY_MS","pow","setChainedTimeout","handleRef","timeoutAtMs","delayMs","Date","useTimeout","clearTimeout","useMemo","clear","CarouselItem","_ref$as","as","Component","bsPrefix","finalClassName","slide","controls","indicators","activeIndex","onSelect","onSlide","onSlid","interval","keyboard","pause","wrap","touch","prevIcon","prevLabel","nextIcon","nextLabel","defaultActiveIndex","CarouselFunc","uncontrolledProps","_useUncontrolled","_useUncontrolled$as","onKeyDown","onMouseOver","onMouseOut","onTouchStart","onTouchMove","onTouchEnd","nextDirectionRef","_useState","useState","direction","setDirection","_useState2","paused","setPaused","_useState3","isSliding","setIsSliding","_useState4","renderedActiveIndex","setRenderedActiveIndex","activeChildInterval","numChildren","activeChildIntervalRef","useCommittedRef","prev","nextActiveIndex","elementRef","useImperativeHandle","nextWhenVisible","hidden","elementStyle","display","visibility","isVisible","slideDirection","orderClassName","directionalClassName","handleEnter","triggerBrowserReflow","handleEntered","handleKeyDown","preventDefault","handleMouseOver","handleMouseOut","touchStartXRef","touchDeltaXRef","touchUnpauseTimeout","handleTouchStart","touches","clientX","handleTouchMove","handleTouchEnd","touchDeltaX","abs","shouldPlay","intervalHandleRef","_activeChildIntervalR","setInterval","visibilityState","clearInterval","indicatorOnClicks","_","_child","onClick","isActive","Transition","in","onEnter","onEntered","addEndListener","transitionEndListener","status","SafeAnchor","Carousel","Caption","CarouselCaption","Item","isTrivialHref","href","handleClick","stopPropagation","tabIndex","ThemeContext","Consumer","Provider","useBootstrapPrefix","useContext","funcs","rHyphen","pascalCase","createWithBsPrefix","_temp","_ref$displayName","BsComponent","_ref2$as","Tag","resolvedPrefix","emulateTransitionEnd","duration","padding","handle","eventName","bubbles","cancelable","createEvent","initEvent","dispatchEvent","triggerEvent","listen","once","transitionEnd","mult","removeEmulate","property","delay","offsetHeight","hasElementType","Element","hasMap","Map","hasSet","hasArrayBuffer","ArrayBuffer","isView","equal","it","entries","has","flags","valueOf","$$typeof","message","warn","clock","_class","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","ReferenceError","encodeSpecialCharacters","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","g","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","tags","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","subClass","superClass","setPrototypeOf","__proto__","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","canUseDOM","defaultTitle","titleTemplate","peek","rewind","mappedState","renderStatic","for","h","l","m","q","t","z","u","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","React","xtend","ReactIs","astToReact","renderer","renderers","pos","nodeProps","getNodeProps","resolveChildren","childNode","opts","isSimpleRenderer","sourcePos","rawSourcePos","sourcePosition","includeNodeIndex","parentChildCount","assignDefined","nodeKey","level","loose","listItemLoose","listLoose","unwrapParagraphs","getListItemChildren","language","inline","linkTarget","transformLinkUri","transformImageUri","columnAlignment","align","isHeader","isBlock","allowDangerousHtml","escapeHtml","skipHtml","parsedChildren","Children","cloneElement","mergeNodeChildren","visit","ifNotMatch","allow","mode","ofType","types","selfClosingRe","simpleTagRe","currentParent","selfClosing","getSelfClosing","opening","getSimpleTag","matching","matchingTag","findAndPull","fromNode","fromIndex","toIndex","indent","virtual","unified","addListMetadata","naiveHtml","disallowNode","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","allTypes","ReactMarkdown","allowedTypes","disallowedTypes","processor","plugins","runSync","renderProps","removalMethod","unwrapDisallowed","allowNode","renderHtml","hasHtmlParser","astPlugins","identity","HtmlParser","determineAstToReactTransforms","supportsStringRender","version","SimpleRenderer","getCoreProps","break","blockquote","delete","linkReference","imageReference","table","tableHead","tableBody","tableRow","tableCell","textAlign","coreProps","checkbox","readOnly","inlineCode","dangerous","virtualHtml","parsedHtml","protocols","uri","colon","protocol","ex","React__default","reducePropsToState","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","getDisplayName","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","initialStatus","appear","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","getDerivedStateFromProps","prevState","componentDidMount","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","timeout","mounting","performEnter","performExit","setState","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","nextState","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","TransitionGroupContext","contextType","Parser","doc","fromMarkdown","trough","fns","middleware","input","invoked","defaultKey","_toPropertyKey","hint","prim","toPrimitive","res","Number","_toPrimitive","useUncontrolledProp","propValue","defaultValue","wasPropRef","stateValue","isProp","wasProp","useUncontrolled","fieldName","_extends2","propsValue","handlerName","_useUncontrolledProp","bail","plain","vfile","frozen","attachers","transformers","freezeIndex","assertUnfrozen","freeze","addPlugin","addList","addPreset","entry","find","file","assertParser","newable","stringify","Compiler","assertCompiler","assertNode","run","complete","assertDone","process","processSync","destination","transformer","executor","pipeline","ctx","contents","asyncName","isBuffer","getPrototypeOf","Boolean","typeFactory","tests","checks","anyFactory","allFactory","visitParents","color","CONTINUE","SKIP","EXIT","step","is","factory","subresult","grandparents","toResult","VMessagePrototype","VMessage","proto","reason","origin","range","parseOrigin","ruleId","fatal","proc","VFile","order","messages","history","cwd","assertPart","part","sep","assertNonEmpty","assertPath","dirname","basename","extname","stem","fail","normalize","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","JSON","ext","firstNonSlashEnd","seenNonSlash","extIndex","unmatchedSlash","startDot","startPart","preDotState","joined","optionsSupported","onceSupported","capture","wrappedHandler","__once","onceHandler","psuedoElement","ownerDocument","defaultView","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","isTransform","removeProperty","faMapMarkerAlt","faCalendarAlt","faChevronDown","faLink","faFile","useStaticQuery","Seo","description","keywords","globalConfig","siteDesc","siteTitle","siteKeywords","allStrapiGlobalConfig","nodes","author","robots","pageMetadata","pageKeywords","metaDescription","preventIndex","defaultKeywords","Helmet","themes","dark","createContext","useTheme","DEFAULT_THEME","getDeviseTheme","localTheme","localStorage","getItem","deviseTheme","theme","setTheme","setItem","onbeforeunload","toggleTheme","prevTheme","background","warning"],"mappings":"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","file":"commons-9d887e15e132bfab57c9.js","sourcesContent":["export default function _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}","export default 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 * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\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 = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function _wrapRegExp(re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\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 Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\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 _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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 _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_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 FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\n\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fakd': 'kit',\n 'fa-kit': 'kit',\n 'fa-kit-duotone': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular',\n 'fasl': 'light',\n 'fa-light': 'light',\n 'fast': 'thin',\n 'fa-thin': 'thin'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n solid: 'fas',\n regular: 'far',\n light: 'fal',\n thin: 'fat',\n duotone: 'fad',\n brands: 'fab',\n kit: 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n solid: 'fass',\n regular: 'fasr',\n light: 'fasl',\n thin: 'fast'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n fab: 'fa-brands',\n fad: 'fa-duotone',\n fak: 'fa-kit',\n fal: 'fa-light',\n far: 'fa-regular',\n fas: 'fa-solid',\n fat: 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n fass: 'fa-solid',\n fasr: 'fa-regular',\n fasl: 'fa-light',\n fast: 'fa-thin'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass',\n 'fa-regular': 'fasr',\n 'fa-light': 'fasl',\n 'fa-thin': 'fast'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n 900: 'fas',\n 400: 'far',\n normal: 'far',\n 300: 'fal',\n 100: 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n 900: 'fass',\n 400: 'fasr',\n 300: 'fasl',\n 100: 'fast'\n}), _familyProxy5));\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: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', 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 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-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['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 styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_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}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\n\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\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 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 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].trim(), \";\");\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 baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-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-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\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-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: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\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-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\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: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n -webkit-transition-delay: 0s;\\n transition-delay: 0s;\\n -webkit-transition-duration: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\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@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 -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, 0));\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\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 z-index: var(--fa-stack-z-index, auto);\\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: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\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.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), '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 _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\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\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\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/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\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/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\n\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return 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\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 = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, 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 ease 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 duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\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 if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\n\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\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 byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\n\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\n\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\n\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\n\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\n\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\n\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\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] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, 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 var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\n\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\n\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\n\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\n\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\n\nvar library = new Library();\n\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\n\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\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 callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\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\nfunction domVariants(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 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(_objectSpread2(_objectSpread2({}, 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.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, 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 isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, 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 var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\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 = _objectSpread2(_objectSpread2(_objectSpread2({}, 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 = _objectSpread2({}, 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 = _objectSpread2(_objectSpread2(_objectSpread2({}, 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 styles$1 = 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.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").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\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\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 \\\"6.5.2\\\"\";\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\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 hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\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\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (_abstract) {\n node.parentNode.insertBefore(convertSVG(_abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var _abstract2 = 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.cssPrefix, \"-.*\"));\n delete _abstract2[0].attributes.id;\n\n if (_abstract2[0].attributes.class) {\n var splitClasses = _abstract2[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\n _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = _abstract2.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\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 _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\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 var defaultPrefix = getDefaultUsablePrefix();\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' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\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 (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\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 blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\n\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\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 ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\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 Promise.resolve();\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 Promise.resolve();\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.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.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 (e) {\n mark();\n reject(e);\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 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, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(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 domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\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: _objectSpread2(_objectSpread2({}, 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 ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\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 return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (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 Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).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 maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\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.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\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 return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\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$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\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 return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (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 Promise.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 }\n};\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\n\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(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 _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // 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\n if (iconName && !isSecondary && (!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(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', '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 Promise.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 Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\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 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\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n 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 var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\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(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_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: _objectSpread2(_objectSpread2({}, 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: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, 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: _objectSpread2(_objectSpread2({}, 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: _objectSpread2({\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 }\n};\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, 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\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, 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: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, 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: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\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 = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\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 _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\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n} // Get CSS class list from a props object\n\n\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n} // Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\n\n\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log() {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n} // creates an object with a key of key\n// and a value of value\n// if certain conditions are met\n\n\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\nexport { FontAwesomeIcon };","import { useEffect, useRef } from 'react';\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded befor being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\n\nfunction useCommittedRef(value) {\n var ref = useRef(value);\n useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref;\n}\n\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n var ref = useCommittedRef(fn);\n return useCallback(function () {\n return ref.current && ref.current.apply(ref, arguments);\n }, [ref]);\n}","import { useRef, useEffect } from 'react';\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\n\nexport default function useMounted() {\n var mounted = useRef(true);\n var isMounted = useRef(function () {\n return mounted.current;\n });\n useEffect(function () {\n return function () {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","'use strict';\n\nmodule.exports = bail;\n\nfunction bail(err) {\n if (err) {\n throw err;\n }\n}","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n if (typeof Array.isArray === 'function') {\n return Array.isArray(arr);\n }\n\n return toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object\n\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n var key;\n\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n}; // If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\n\n\nvar setProperty = function setProperty(target, options) {\n if (defineProperty && options.name === '__proto__') {\n defineProperty(target, options.name, {\n enumerable: true,\n configurable: true,\n value: options.newValue,\n writable: true\n });\n } else {\n target[options.name] = options.newValue;\n }\n}; // Return undefined instead of __proto__ if '__proto__' is not an own property\n\n\nvar getProperty = function getProperty(obj, name) {\n if (name === '__proto__') {\n if (!hasOwn.call(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n\n return obj[name];\n};\n\nmodule.exports = function extend() {\n var options, name, src, copy, copyIsArray, clone;\n var target = arguments[0];\n var i = 1;\n var length = arguments.length;\n var deep = false; // Handle a deep copy situation\n\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {}; // skip the boolean and the target\n\n i = 2;\n }\n\n if (target == null || typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n\n for (; i < length; ++i) {\n options = arguments[i]; // Only deal with non-null/undefined values\n\n if (options != null) {\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name); // Prevent never-ending loop\n\n if (target !== copy) {\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n setProperty(target, {\n name: name,\n newValue: extend(deep, clone, copy)\n }); // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, {\n name: name,\n newValue: copy\n });\n }\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n};","var visitWithParents = require('unist-util-visit-parents');\n\nfunction addListMetadata() {\n return function (ast) {\n visitWithParents(ast, 'list', function (listNode, parents) {\n var depth = 0,\n i,\n n;\n\n for (i = 0, n = parents.length; i < n; i++) {\n if (parents[i].type === 'list') depth += 1;\n }\n\n for (i = 0, n = listNode.children.length; i < n; i++) {\n var child = listNode.children[i];\n child.index = i;\n child.ordered = listNode.ordered;\n }\n\n listNode.depth = depth;\n });\n return ast;\n };\n}\n\nmodule.exports = addListMetadata;","'use strict';\n/* Expose. */\n\nmodule.exports = visitParents;\n/* Visit. */\n\nfunction visitParents(tree, type, visitor) {\n var stack = [];\n\n if (typeof type === 'function') {\n visitor = type;\n type = null;\n }\n\n one(tree);\n /* Visit a single node. */\n\n function one(node) {\n var result;\n\n if (!type || node.type === type) {\n result = visitor(node, stack.concat());\n }\n\n if (node.children && result !== false) {\n return all(node.children, node);\n }\n\n return result;\n }\n /* Visit children in `parent`. */\n\n\n function all(children, parent) {\n var length = children.length;\n var index = -1;\n var child;\n stack.push(parent);\n\n while (++index < length) {\n child = children[index];\n\n if (child && one(child) === false) {\n return false;\n }\n }\n\n stack.pop();\n return true;\n }\n}","'use strict';\n\nmodule.exports = fromMarkdown; // These three are compiled away in the `dist/`\n\nvar toString = require('mdast-util-to-string');\n\nvar assign = require('micromark/dist/constant/assign');\n\nvar own = require('micromark/dist/constant/has-own-property');\n\nvar normalizeIdentifier = require('micromark/dist/util/normalize-identifier');\n\nvar safeFromInt = require('micromark/dist/util/safe-from-int');\n\nvar parser = require('micromark/dist/parse');\n\nvar preprocessor = require('micromark/dist/preprocess');\n\nvar postprocess = require('micromark/dist/postprocess');\n\nvar decode = require('parse-entities/decode-entity');\n\nvar stringifyPosition = require('unist-util-stringify-position');\n\nfunction fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n\n return compiler(options)(postprocess(parser(options).document().write(preprocessor()(value, encoding, true))));\n} // Note this compiler only understand complete buffering, not streaming.\n\n\nfunction compiler(options) {\n var settings = options || {};\n var config = configure({\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }, settings.mdastExtensions || []);\n var data = {};\n return compile;\n\n function compile(events) {\n var tree = {\n type: 'root',\n children: []\n };\n var stack = [tree];\n var tokenStack = [];\n var listStack = [];\n var index = -1;\n var handler;\n var listStart;\n var context = {\n stack: stack,\n tokenStack: tokenStack,\n config: config,\n enter: enter,\n exit: exit,\n buffer: buffer,\n resume: resume,\n setData: setData,\n getData: getData\n };\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === 'listOrdered' || events[index][1].type === 'listUnordered') {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n listStart = listStack.pop(index);\n index = prepareList(events, listStart, index);\n }\n }\n }\n\n index = -1;\n\n while (++index < events.length) {\n handler = config[events[index][0]];\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n if (tokenStack.length) {\n throw new Error('Cannot close document, a token (`' + tokenStack[tokenStack.length - 1].type + '`, ' + stringifyPosition({\n start: tokenStack[tokenStack.length - 1].start,\n end: tokenStack[tokenStack.length - 1].end\n }) + ') is still open');\n } // Figure out `root` position.\n\n\n tree.position = {\n start: point(events.length ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n index = -1;\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n\n return tree;\n }\n\n function prepareList(events, start, length) {\n var index = start - 1;\n var containerBalance = -1;\n var listSpread = false;\n var listItem;\n var tailIndex;\n var lineIndex;\n var tailEvent;\n var event;\n var firstBlankLineIndex;\n var atMarker;\n\n while (++index <= length) {\n event = events[index];\n\n if (event[1].type === 'listUnordered' || event[1].type === 'listOrdered' || event[1].type === 'blockQuote') {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n\n atMarker = undefined;\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n\n atMarker = undefined;\n }\n } else if (event[1].type === 'linePrefix' || event[1].type === 'listItemValue' || event[1].type === 'listItemMarker' || event[1].type === 'listItemPrefix' || event[1].type === 'listItemPrefixWhitespace') {// Empty.\n } else {\n atMarker = undefined;\n }\n\n if (!containerBalance && event[0] === 'enter' && event[1].type === 'listItemPrefix' || containerBalance === -1 && event[0] === 'exit' && (event[1].type === 'listUnordered' || event[1].type === 'listOrdered')) {\n if (listItem) {\n tailIndex = index;\n lineIndex = undefined;\n\n while (tailIndex--) {\n tailEvent = events[tailIndex];\n\n if (tailEvent[1].type === 'lineEnding' || tailEvent[1].type === 'lineEndingBlank') {\n if (tailEvent[0] === 'exit') continue;\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank';\n listSpread = true;\n }\n\n tailEvent[1].type = 'lineEnding';\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === 'linePrefix' || tailEvent[1].type === 'blockQuotePrefix' || tailEvent[1].type === 'blockQuotePrefixWhitespace' || tailEvent[1].type === 'blockQuoteMarker' || tailEvent[1].type === 'listItemIndent') {// Empty\n } else {\n break;\n }\n }\n\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n } // Fix position.\n\n\n listItem.end = point(lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n } // Create a new list item.\n\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n _spread: false,\n start: point(event[1].start)\n };\n events.splice(index, 0, ['enter', listItem, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n\n events[start][1]._spread = listSpread;\n return length;\n }\n\n function setData(key, value) {\n data[key] = value;\n }\n\n function getData(key) {\n return data[key];\n }\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n }\n\n function opener(create, and) {\n return open;\n\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n function enter(node, token) {\n this.stack[this.stack.length - 1].children.push(node);\n this.stack.push(node);\n this.tokenStack.push(token);\n node.position = {\n start: point(token.start)\n };\n return node;\n }\n\n function closer(and) {\n return close;\n\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n function exit(token) {\n var node = this.stack.pop();\n var open = this.tokenStack.pop();\n\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open.type !== token.type) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): a different token (`' + open.type + '`, ' + stringifyPosition({\n start: open.start,\n end: open.end\n }) + ') is open');\n }\n\n node.position.end = point(token.end);\n return node;\n }\n\n function resume() {\n return toString(this.stack.pop());\n } //\n // Handlers.\n //\n\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true);\n }\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n this.stack[this.stack.length - 2].start = parseInt(this.sliceSerialize(token), 10);\n setData('expectingFirstListItemValue');\n }\n }\n\n function onexitcodefencedfenceinfo() {\n var data = this.resume();\n this.stack[this.stack.length - 1].lang = data;\n }\n\n function onexitcodefencedfencemeta() {\n var data = this.resume();\n this.stack[this.stack.length - 1].meta = data;\n }\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return;\n this.buffer();\n setData('flowCodeInside', true);\n }\n\n function onexitcodefenced() {\n var data = this.resume();\n this.stack[this.stack.length - 1].value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n setData('flowCodeInside');\n }\n\n function onexitcodeindented() {\n var data = this.resume();\n this.stack[this.stack.length - 1].value = data;\n }\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n var label = this.resume();\n this.stack[this.stack.length - 1].label = label;\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n function onexitdefinitiontitlestring() {\n var data = this.resume();\n this.stack[this.stack.length - 1].title = data;\n }\n\n function onexitdefinitiondestinationstring() {\n var data = this.resume();\n this.stack[this.stack.length - 1].url = data;\n }\n\n function onexitatxheadingsequence(token) {\n if (!this.stack[this.stack.length - 1].depth) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(token).length;\n }\n }\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true);\n }\n\n function onexitsetextheadinglinesequence(token) {\n this.stack[this.stack.length - 1].depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2;\n }\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding');\n }\n\n function onenterdata(token) {\n var siblings = this.stack[this.stack.length - 1].children;\n var tail = siblings[siblings.length - 1];\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start)\n };\n this.stack[this.stack.length - 1].children.push(tail);\n }\n\n this.stack.push(tail);\n }\n\n function onexitdata(token) {\n var tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n function onexitlineending(token) {\n var context = this.stack[this.stack.length - 1]; // If we’re at a hard break, include the line ending in there.\n\n if (getData('atHardBreak')) {\n context.children[context.children.length - 1].position.end = point(token.end);\n setData('atHardBreak');\n return;\n }\n\n if (!getData('setextHeadingSlurpLineEnding') && config.canContainEols.indexOf(context.type) > -1) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n function onexithardbreak() {\n setData('atHardBreak', true);\n }\n\n function onexithtmlflow() {\n var data = this.resume();\n this.stack[this.stack.length - 1].value = data;\n }\n\n function onexithtmltext() {\n var data = this.resume();\n this.stack[this.stack.length - 1].value = data;\n }\n\n function onexitcodetext() {\n var data = this.resume();\n this.stack[this.stack.length - 1].value = data;\n }\n\n function onexitlink() {\n var context = this.stack[this.stack.length - 1]; // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference';\n context.referenceType = getData('referenceType') || 'shortcut';\n delete context.url;\n delete context.title;\n } else {\n delete context.identifier;\n delete context.label;\n delete context.referenceType;\n }\n\n setData('referenceType');\n }\n\n function onexitimage() {\n var context = this.stack[this.stack.length - 1]; // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference';\n context.referenceType = getData('referenceType') || 'shortcut';\n delete context.url;\n delete context.title;\n } else {\n delete context.identifier;\n delete context.label;\n delete context.referenceType;\n }\n\n setData('referenceType');\n }\n\n function onexitlabeltext(token) {\n this.stack[this.stack.length - 2].identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n function onexitlabel() {\n var fragment = this.stack[this.stack.length - 1];\n var value = this.resume();\n this.stack[this.stack.length - 1].label = value; // Assume a reference.\n\n setData('inReference', true);\n\n if (this.stack[this.stack.length - 1].type === 'link') {\n this.stack[this.stack.length - 1].children = fragment.children;\n } else {\n this.stack[this.stack.length - 1].alt = value;\n }\n }\n\n function onexitresourcedestinationstring() {\n var data = this.resume();\n this.stack[this.stack.length - 1].url = data;\n }\n\n function onexitresourcetitlestring() {\n var data = this.resume();\n this.stack[this.stack.length - 1].title = data;\n }\n\n function onexitresource() {\n setData('inReference');\n }\n\n function onenterreference() {\n setData('referenceType', 'collapsed');\n }\n\n function onexitreferencestring(token) {\n var label = this.resume();\n this.stack[this.stack.length - 1].label = label;\n this.stack[this.stack.length - 1].identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n setData('referenceType', 'full');\n }\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type);\n }\n\n function onexitcharacterreferencevalue(token) {\n var data = this.sliceSerialize(token);\n var type = getData('characterReferenceType');\n var value;\n var tail;\n\n if (type) {\n value = safeFromInt(data, type === 'characterReferenceMarkerNumeric' ? 10 : 16);\n setData('characterReferenceType');\n } else {\n value = decode(data);\n }\n\n tail = this.stack.pop();\n tail.value += value;\n tail.position.end = point(token.end);\n }\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n this.stack[this.stack.length - 1].url = this.sliceSerialize(token);\n }\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n this.stack[this.stack.length - 1].url = 'mailto:' + this.sliceSerialize(token);\n } //\n // Creaters.\n //\n\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n function heading() {\n return {\n type: 'heading',\n depth: undefined,\n children: []\n };\n }\n\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\nfunction configure(config, extensions) {\n var index = -1;\n\n while (++index < extensions.length) {\n extension(config, extensions[index]);\n }\n\n return config;\n}\n\nfunction extension(config, extension) {\n var key;\n var left;\n\n for (key in extension) {\n left = own.call(config, key) ? config[key] : config[key] = {};\n\n if (key === 'canContainEols' || key === 'transforms') {\n config[key] = [].concat(left, extension[key]);\n } else {\n Object.assign(left, extension[key]);\n }\n }\n}","'use strict';\n\nmodule.exports = require('./dist');","'use strict';\n\nmodule.exports = toString; // Get the text content of a node.\n// Prefer the node’s plain-text fields, otherwise serialize its children,\n// and if the given value is an array, serialize the nodes in it.\n\nfunction toString(node) {\n return node && (node.value || node.alt || node.title || 'children' in node && all(node.children) || 'length' in node && all(node)) || '';\n}\n\nfunction all(values) {\n var result = [];\n var index = -1;\n\n while (++index < values.length) {\n result[index] = toString(values[index]);\n }\n\n return result.join('');\n}","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar asciiAlpha = regexCheck(/[A-Za-z]/);\nmodule.exports = asciiAlpha;","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nmodule.exports = asciiAlphanumeric;","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\nmodule.exports = asciiAtext;","'use strict'; // Note: EOF is seen as ASCII control here, because `null < 32 == true`.\n\nfunction asciiControl(code) {\n return (// Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code < 32 || code === 127\n );\n}\n\nmodule.exports = asciiControl;","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar asciiDigit = regexCheck(/\\d/);\nmodule.exports = asciiDigit;","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\nmodule.exports = asciiHexDigit;","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\nmodule.exports = asciiPunctuation;","'use strict';\n\nfunction markdownLineEndingOrSpace(code) {\n return code < 0 || code === 32;\n}\n\nmodule.exports = markdownLineEndingOrSpace;","'use strict';\n\nfunction markdownLineEnding(code) {\n return code < -2;\n}\n\nmodule.exports = markdownLineEnding;","'use strict';\n\nfunction markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\nmodule.exports = markdownSpace;","'use strict';\n\nvar unicodePunctuationRegex = require('../constant/unicode-punctuation-regex.js');\n\nvar regexCheck = require('../util/regex-check.js'); // In fact adds to the bundle size.\n\n\nvar unicodePunctuation = regexCheck(unicodePunctuationRegex);\nmodule.exports = unicodePunctuation;","'use strict';\n\nvar regexCheck = require('../util/regex-check.js');\n\nvar unicodeWhitespace = regexCheck(/\\s/);\nmodule.exports = unicodeWhitespace;","'use strict';\n\nvar assign = Object.assign;\nmodule.exports = assign;","'use strict';\n\nvar fromCharCode = String.fromCharCode;\nmodule.exports = fromCharCode;","'use strict';\n\nvar own = {}.hasOwnProperty;\nmodule.exports = own;","'use strict'; // This module is copied from .\n\nvar basics = ['address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem', 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'section', 'source', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul'];\nmodule.exports = basics;","'use strict'; // This module is copied from .\n\nvar raws = ['pre', 'script', 'style', 'textarea'];\nmodule.exports = raws;","'use strict';\n\nvar splice = [].splice;\nmodule.exports = splice;","'use strict'; // This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\n\nvar unicodePunctuation = /[!-\\/:-@\\[-`\\{-~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/;\nmodule.exports = unicodePunctuation;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar text$1 = require('./initialize/text.js');\n\nvar attention = require('./tokenize/attention.js');\n\nvar autolink = require('./tokenize/autolink.js');\n\nvar blockQuote = require('./tokenize/block-quote.js');\n\nvar characterEscape = require('./tokenize/character-escape.js');\n\nvar characterReference = require('./tokenize/character-reference.js');\n\nvar codeFenced = require('./tokenize/code-fenced.js');\n\nvar codeIndented = require('./tokenize/code-indented.js');\n\nvar codeText = require('./tokenize/code-text.js');\n\nvar definition = require('./tokenize/definition.js');\n\nvar hardBreakEscape = require('./tokenize/hard-break-escape.js');\n\nvar headingAtx = require('./tokenize/heading-atx.js');\n\nvar htmlFlow = require('./tokenize/html-flow.js');\n\nvar htmlText = require('./tokenize/html-text.js');\n\nvar labelEnd = require('./tokenize/label-end.js');\n\nvar labelStartImage = require('./tokenize/label-start-image.js');\n\nvar labelStartLink = require('./tokenize/label-start-link.js');\n\nvar lineEnding = require('./tokenize/line-ending.js');\n\nvar list = require('./tokenize/list.js');\n\nvar setextUnderline = require('./tokenize/setext-underline.js');\n\nvar thematicBreak = require('./tokenize/thematic-break.js');\n\nvar document = {\n 42: list,\n // Asterisk\n 43: list,\n // Plus sign\n 45: list,\n // Dash\n 48: list,\n // 0\n 49: list,\n // 1\n 50: list,\n // 2\n 51: list,\n // 3\n 52: list,\n // 4\n 53: list,\n // 5\n 54: list,\n // 6\n 55: list,\n // 7\n 56: list,\n // 8\n 57: list,\n // 9\n 62: blockQuote // Greater than\n\n};\nvar contentInitial = {\n 91: definition // Left square bracket\n\n};\nvar flowInitial = {\n '-2': codeIndented,\n // Horizontal tab\n '-1': codeIndented,\n // Virtual space\n 32: codeIndented // Space\n\n};\nvar flow = {\n 35: headingAtx,\n // Number sign\n 42: thematicBreak,\n // Asterisk\n 45: [setextUnderline, thematicBreak],\n // Dash\n 60: htmlFlow,\n // Less than\n 61: setextUnderline,\n // Equals to\n 95: thematicBreak,\n // Underscore\n 96: codeFenced,\n // Grave accent\n 126: codeFenced // Tilde\n\n};\nvar string = {\n 38: characterReference,\n // Ampersand\n 92: characterEscape // Backslash\n\n};\nvar text = {\n '-5': lineEnding,\n // Carriage return\n '-4': lineEnding,\n // Line feed\n '-3': lineEnding,\n // Carriage return + line feed\n 33: labelStartImage,\n // Exclamation mark\n 38: characterReference,\n // Ampersand\n 42: attention,\n // Asterisk\n 60: [autolink, htmlText],\n // Less than\n 91: labelStartLink,\n // Left square bracket\n 92: [hardBreakEscape, characterEscape],\n // Backslash\n 93: labelEnd,\n // Right square bracket\n 95: attention,\n // Underscore\n 96: codeText // Grave accent\n\n};\nvar insideSpan = {\n null: [attention, text$1.resolver]\n};\nvar disable = {\n null: []\n};\nexports.contentInitial = contentInitial;\nexports.disable = disable;\nexports.document = document;\nexports.flow = flow;\nexports.flowInitial = flowInitial;\nexports.insideSpan = insideSpan;\nexports.string = string;\nexports.text = text;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar factorySpace = require('../tokenize/factory-space.js');\n\nvar tokenize = initializeContent;\n\nfunction initializeContent(effects) {\n var contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n var previous;\n return contentStart;\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, contentStart, 'linePrefix');\n }\n\n function paragraphInitial(code) {\n effects.enter('paragraph');\n return lineStart(code);\n }\n\n function lineStart(code) {\n var token = effects.enter('chunkText', {\n contentType: 'text',\n previous: previous\n });\n\n if (previous) {\n previous.next = token;\n }\n\n previous = token;\n return data(code);\n }\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText');\n effects.exit('paragraph');\n effects.consume(code);\n return;\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit('chunkText');\n return lineStart;\n } // Data.\n\n\n effects.consume(code);\n return data;\n }\n}\n\nexports.tokenize = tokenize;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar factorySpace = require('../tokenize/factory-space.js');\n\nvar partialBlankLine = require('../tokenize/partial-blank-line.js');\n\nvar tokenize = initializeDocument;\nvar containerConstruct = {\n tokenize: tokenizeContainer\n};\nvar lazyFlowConstruct = {\n tokenize: tokenizeLazyFlow\n};\n\nfunction initializeDocument(effects) {\n var self = this;\n var stack = [];\n var continued = 0;\n var inspectConstruct = {\n tokenize: tokenizeInspect,\n partial: true\n };\n var inspectResult;\n var childFlow;\n var childToken;\n return start;\n\n function start(code) {\n if (continued < stack.length) {\n self.containerState = stack[continued][1];\n return effects.attempt(stack[continued][0].continuation, documentContinue, documentContinued)(code);\n }\n\n return documentContinued(code);\n }\n\n function documentContinue(code) {\n continued++;\n return start(code);\n }\n\n function documentContinued(code) {\n // If we’re in a concrete construct (such as when expecting another line of\n // HTML, or we resulted in lazy content), we can immediately start flow.\n if (inspectResult && inspectResult.flowContinue) {\n return flowStart(code);\n }\n\n self.interrupt = childFlow && childFlow.currentConstruct && childFlow.currentConstruct.interruptible;\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n function containerContinue(code) {\n stack.push([self.currentConstruct, self.containerState]);\n self.containerState = undefined;\n return documentContinued(code);\n }\n\n function flowStart(code) {\n if (code === null) {\n exitContainers(0, true);\n effects.consume(code);\n return;\n }\n\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n });\n return flowContinue(code);\n }\n\n function flowContinue(code) {\n if (code === null) {\n continueFlow(effects.exit('chunkFlow'));\n return flowStart(code);\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code);\n continueFlow(effects.exit('chunkFlow'));\n return effects.check(inspectConstruct, documentAfterPeek);\n }\n\n effects.consume(code);\n return flowContinue;\n }\n\n function documentAfterPeek(code) {\n exitContainers(inspectResult.continued, inspectResult && inspectResult.flowEnd);\n continued = 0;\n return start(code);\n }\n\n function continueFlow(token) {\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.lazy = inspectResult && inspectResult.lazy;\n childFlow.defineSkip(token.start);\n childFlow.write(self.sliceStream(token));\n }\n\n function exitContainers(size, end) {\n var index = stack.length; // Close the flow.\n\n if (childFlow && end) {\n childFlow.write([null]);\n childToken = childFlow = undefined;\n } // Exit open containers.\n\n\n while (index-- > size) {\n self.containerState = stack[index][1];\n stack[index][0].exit.call(self, effects);\n }\n\n stack.length = size;\n }\n\n function tokenizeInspect(effects, ok) {\n var subcontinued = 0;\n inspectResult = {};\n return inspectStart;\n\n function inspectStart(code) {\n if (subcontinued < stack.length) {\n self.containerState = stack[subcontinued][1];\n return effects.attempt(stack[subcontinued][0].continuation, inspectContinue, inspectLess)(code);\n } // If we’re continued but in a concrete flow, we can’t have more\n // containers.\n\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n inspectResult.flowContinue = true;\n return inspectDone(code);\n }\n\n self.interrupt = childFlow.currentConstruct && childFlow.currentConstruct.interruptible;\n self.containerState = {};\n return effects.attempt(containerConstruct, inspectFlowEnd, inspectDone)(code);\n }\n\n function inspectContinue(code) {\n subcontinued++;\n return self.containerState._closeFlow ? inspectFlowEnd(code) : inspectStart(code);\n }\n\n function inspectLess(code) {\n if (childFlow.currentConstruct && childFlow.currentConstruct.lazy) {\n // Maybe another container?\n self.containerState = {};\n return effects.attempt(containerConstruct, inspectFlowEnd, // Maybe flow, or a blank line?\n effects.attempt(lazyFlowConstruct, inspectFlowEnd, effects.check(partialBlankLine, inspectFlowEnd, inspectLazy)))(code);\n } // Otherwise we’re interrupting.\n\n\n return inspectFlowEnd(code);\n }\n\n function inspectLazy(code) {\n // Act as if all containers are continued.\n subcontinued = stack.length;\n inspectResult.lazy = true;\n inspectResult.flowContinue = true;\n return inspectDone(code);\n } // We’re done with flow if we have more containers, or an interruption.\n\n\n function inspectFlowEnd(code) {\n inspectResult.flowEnd = true;\n return inspectDone(code);\n }\n\n function inspectDone(code) {\n inspectResult.continued = subcontinued;\n self.interrupt = self.containerState = undefined;\n return ok(code);\n }\n }\n}\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), 'linePrefix', this.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4);\n}\n\nfunction tokenizeLazyFlow(effects, ok, nok) {\n return factorySpace(effects, effects.lazy(this.parser.constructs.flow, ok, nok), 'linePrefix', this.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4);\n}\n\nexports.tokenize = tokenize;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar content = require('../tokenize/content.js');\n\nvar factorySpace = require('../tokenize/factory-space.js');\n\nvar partialBlankLine = require('../tokenize/partial-blank-line.js');\n\nvar tokenize = initializeFlow;\n\nfunction initializeFlow(effects) {\n var self = this;\n var initial = effects.attempt( // Try to parse a blank line.\n partialBlankLine, atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), 'linePrefix')));\n return initial;\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n\n effects.enter('lineEndingBlank');\n effects.consume(code);\n effects.exit('lineEndingBlank');\n self.currentConstruct = undefined;\n return initial;\n }\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n self.currentConstruct = undefined;\n return initial;\n }\n}\n\nexports.tokenize = tokenize;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar assign = require('../constant/assign.js');\n\nvar shallow = require('../util/shallow.js');\n\nvar text = initializeFactory('text');\nvar string = initializeFactory('string');\nvar resolver = {\n resolveAll: createResolver()\n};\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined)\n };\n\n function initializeText(effects) {\n var self = this;\n var constructs = this.parser.constructs[field];\n var text = effects.attempt(constructs, start, notText);\n return start;\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n\n effects.enter('data');\n effects.consume(code);\n return data;\n }\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data');\n return text(code);\n } // Data.\n\n\n effects.consume(code);\n return data;\n }\n\n function atBreak(code) {\n var list = constructs[code];\n var index = -1;\n\n if (code === null) {\n return true;\n }\n\n if (list) {\n while (++index < list.length) {\n if (!list[index].previous || list[index].previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n }\n }\n}\n\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n function resolveAllText(events, context) {\n var index = -1;\n var enter; // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n\n enter = undefined;\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events;\n }\n} // A rather ugly set of instructions which again looks at chunks in the input\n// stream.\n// The reason to do this here is that it is *much* faster to parse in reverse.\n// And that we can’t hook into `null` to split the line suffix before an EOF.\n// To do: figure out if we can make this into a clean utility, or even in core.\n// As it will be useful for GFMs literal autolink extension (and maybe even\n// tables?)\n\n\nfunction resolveAllLineSuffixes(events, context) {\n var eventIndex = -1;\n var chunks;\n var data;\n var chunk;\n var index;\n var bufferIndex;\n var size;\n var tabs;\n var token;\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === 'lineEnding') && events[eventIndex - 1][1].type === 'data') {\n data = events[eventIndex - 1][1];\n chunks = context.sliceStream(data);\n index = chunks.length;\n bufferIndex = -1;\n size = 0;\n tabs = undefined;\n\n while (index--) {\n chunk = chunks[index];\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n\n if (bufferIndex) break;\n bufferIndex = -1;\n } // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) ;else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n if (size) {\n token = {\n type: eventIndex === events.length || tabs || size < 2 ? 'lineSuffix' : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex\n },\n end: shallow(data.end)\n };\n data.end = shallow(token.start);\n\n if (data.start.offset === data.end.offset) {\n assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n\n eventIndex++;\n }\n }\n\n return events;\n}\n\nexports.resolver = resolver;\nexports.string = string;\nexports.text = text;","'use strict';\n\nvar content = require('./initialize/content.js');\n\nvar document = require('./initialize/document.js');\n\nvar flow = require('./initialize/flow.js');\n\nvar text = require('./initialize/text.js');\n\nvar combineExtensions = require('./util/combine-extensions.js');\n\nvar createTokenizer = require('./util/create-tokenizer.js');\n\nvar miniflat = require('./util/miniflat.js');\n\nvar constructs = require('./constructs.js');\n\nfunction parse(options) {\n var settings = options || {};\n var parser = {\n defined: [],\n constructs: combineExtensions([constructs].concat(miniflat(settings.extensions))),\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(text.string),\n text: create(text.text)\n };\n return parser;\n\n function create(initializer) {\n return creator;\n\n function creator(from) {\n return createTokenizer(parser, initializer, from);\n }\n }\n}\n\nmodule.exports = parse;","'use strict';\n\nvar subtokenize = require('./util/subtokenize.js');\n\nfunction postprocess(events) {\n while (!subtokenize(events)) {// Empty\n }\n\n return events;\n}\n\nmodule.exports = postprocess;","'use strict';\n\nvar search = /[\\0\\t\\n\\r]/g;\n\nfunction preprocess() {\n var start = true;\n var column = 1;\n var buffer = '';\n var atCarriageReturn;\n return preprocessor;\n\n function preprocessor(value, encoding, end) {\n var chunks = [];\n var match;\n var next;\n var startPosition;\n var endPosition;\n var code;\n value = buffer + value.toString(encoding);\n startPosition = 0;\n buffer = '';\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n\n start = undefined;\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n\n if (code === 0) {\n chunks.push(65533);\n column++;\n } else if (code === 9) {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n\n while (column++ < next) {\n chunks.push(-1);\n }\n } else if (code === 10) {\n chunks.push(-4);\n column = 1;\n } // Must be carriage return.\n else {\n atCarriageReturn = true;\n column = 1;\n }\n }\n\n startPosition = endPosition + 1;\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n\n return chunks;\n }\n}\n\nmodule.exports = preprocess;","'use strict';\n\nvar chunkedPush = require('../util/chunked-push.js');\n\nvar chunkedSplice = require('../util/chunked-splice.js');\n\nvar classifyCharacter = require('../util/classify-character.js');\n\nvar movePoint = require('../util/move-point.js');\n\nvar resolveAll = require('../util/resolve-all.js');\n\nvar shallow = require('../util/shallow.js');\n\nvar attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n\nfunction resolveAllAttention(events, context) {\n var index = -1;\n var open;\n var group;\n var text;\n var openingSequence;\n var closingSequence;\n var use;\n var nextEvents;\n var offset; // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index; // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n } // Number of markers to use from the sequence.\n\n\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: movePoint(shallow(events[open][1].end), -use),\n end: shallow(events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: shallow(events[index][1].start),\n end: movePoint(shallow(events[index][1].start), use)\n };\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n };\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: shallow(openingSequence.start),\n end: shallow(closingSequence.end)\n };\n events[open][1].end = shallow(openingSequence.start);\n events[index][1].start = shallow(closingSequence.end);\n nextEvents = []; // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = chunkedPush(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n } // Opening.\n\n\n nextEvents = chunkedPush(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]); // Between.\n\n nextEvents = chunkedPush(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context)); // Closing.\n\n nextEvents = chunkedPush(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]); // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = chunkedPush(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n } // Remove remaining sequences.\n\n\n index = -1;\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n\n return events;\n}\n\nfunction tokenizeAttention(effects, ok) {\n var before = classifyCharacter(this.previous);\n var marker;\n return start;\n\n function start(code) {\n effects.enter('attentionSequence');\n marker = code;\n return sequence(code);\n }\n\n function sequence(code) {\n var token;\n var after;\n var open;\n var close;\n\n if (code === marker) {\n effects.consume(code);\n return sequence;\n }\n\n token = effects.exit('attentionSequence');\n after = classifyCharacter(code);\n open = !after || after === 2 && before;\n close = !before || before === 2 && after;\n token._open = marker === 42 ? open : open && (before || !close);\n token._close = marker === 42 ? close : close && (after || !open);\n return ok(code);\n }\n}\n\nmodule.exports = attention;","'use strict';\n\nvar asciiAlpha = require('../character/ascii-alpha.js');\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js');\n\nvar asciiAtext = require('../character/ascii-atext.js');\n\nvar asciiControl = require('../character/ascii-control.js');\n\nvar autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\nfunction tokenizeAutolink(effects, ok, nok) {\n var size = 1;\n return start;\n\n function start(code) {\n effects.enter('autolink');\n effects.enter('autolinkMarker');\n effects.consume(code);\n effects.exit('autolinkMarker');\n effects.enter('autolinkProtocol');\n return open;\n }\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code);\n }\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code) ? schemeInsideOrEmailAtext(code) : emailAtext(code);\n }\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n return urlInside;\n }\n\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n\n return emailAtext(code);\n }\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol');\n return end(code);\n }\n\n if (code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n\n effects.consume(code);\n return urlInside;\n }\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n\n return nok(code);\n }\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail';\n return end(code);\n }\n\n return emailValue(code);\n }\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code);\n return code === 45 ? emailValue : emailLabel;\n }\n\n return nok(code);\n }\n\n function end(code) {\n effects.enter('autolinkMarker');\n effects.consume(code);\n effects.exit('autolinkMarker');\n effects.exit('autolink');\n return ok;\n }\n}\n\nmodule.exports = autolink;","'use strict';\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit: exit\n};\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n var self = this;\n return start;\n\n function start(code) {\n if (code === 62) {\n if (!self.containerState.open) {\n effects.enter('blockQuote', {\n _container: true\n });\n self.containerState.open = true;\n }\n\n effects.enter('blockQuotePrefix');\n effects.enter('blockQuoteMarker');\n effects.consume(code);\n effects.exit('blockQuoteMarker');\n return after;\n }\n\n return nok(code);\n }\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace');\n effects.consume(code);\n effects.exit('blockQuotePrefixWhitespace');\n effects.exit('blockQuotePrefix');\n return ok;\n }\n\n effects.exit('blockQuotePrefix');\n return ok(code);\n }\n}\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(effects, effects.attempt(blockQuote, ok, nok), 'linePrefix', this.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4);\n}\n\nfunction exit(effects) {\n effects.exit('blockQuote');\n}\n\nmodule.exports = blockQuote;","'use strict';\n\nvar asciiPunctuation = require('../character/ascii-punctuation.js');\n\nvar characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n function start(code) {\n effects.enter('characterEscape');\n effects.enter('escapeMarker');\n effects.consume(code);\n effects.exit('escapeMarker');\n return open;\n }\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue');\n effects.consume(code);\n effects.exit('characterEscapeValue');\n effects.exit('characterEscape');\n return ok;\n }\n\n return nok(code);\n }\n}\n\nmodule.exports = characterEscape;","'use strict';\n\nvar decodeEntity = require('parse-entities/decode-entity.js');\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js');\n\nvar asciiDigit = require('../character/ascii-digit.js');\n\nvar asciiHexDigit = require('../character/ascii-hex-digit.js');\n\nfunction _interopDefaultLegacy(e) {\n return e && typeof e === 'object' && 'default' in e ? e : {\n default: e\n };\n}\n\nvar decodeEntity__default = /*#__PURE__*/_interopDefaultLegacy(decodeEntity);\n\nvar characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n var self = this;\n var size = 0;\n var max;\n var test;\n return start;\n\n function start(code) {\n effects.enter('characterReference');\n effects.enter('characterReferenceMarker');\n effects.consume(code);\n effects.exit('characterReferenceMarker');\n return open;\n }\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric');\n effects.consume(code);\n effects.exit('characterReferenceMarkerNumeric');\n return numeric;\n }\n\n effects.enter('characterReferenceValue');\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal');\n effects.consume(code);\n effects.exit('characterReferenceMarkerHexadecimal');\n effects.enter('characterReferenceValue');\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n\n effects.enter('characterReferenceValue');\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n function value(code) {\n var token;\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue');\n\n if (test === asciiAlphanumeric && !decodeEntity__default['default'](self.sliceSerialize(token))) {\n return nok(code);\n }\n\n effects.enter('characterReferenceMarker');\n effects.consume(code);\n effects.exit('characterReferenceMarker');\n effects.exit('characterReference');\n return ok;\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n\n return nok(code);\n }\n}\n\nmodule.exports = characterReference;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar prefixSize = require('../util/prefix-size.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n var self = this;\n var closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n };\n var initialPrefix = prefixSize(this.events, 'linePrefix');\n var sizeOpen = 0;\n var marker;\n return start;\n\n function start(code) {\n effects.enter('codeFenced');\n effects.enter('codeFencedFence');\n effects.enter('codeFencedFenceSequence');\n marker = code;\n return sequenceOpen(code);\n }\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n\n effects.exit('codeFencedFenceSequence');\n return sizeOpen < 3 ? nok(code) : factorySpace(effects, infoOpen, 'whitespace')(code);\n }\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code);\n }\n\n effects.enter('codeFencedFenceInfo');\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return info(code);\n }\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString');\n effects.exit('codeFencedFenceInfo');\n return factorySpace(effects, infoAfter, 'whitespace')(code);\n }\n\n if (code === 96 && code === marker) return nok(code);\n effects.consume(code);\n return info;\n }\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code);\n }\n\n effects.enter('codeFencedFenceMeta');\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return meta(code);\n }\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString');\n effects.exit('codeFencedFenceMeta');\n return openAfter(code);\n }\n\n if (code === 96 && code === marker) return nok(code);\n effects.consume(code);\n return meta;\n }\n\n function openAfter(code) {\n effects.exit('codeFencedFence');\n return self.interrupt ? ok(code) : content(code);\n }\n\n function content(code) {\n if (code === null) {\n return after(code);\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return effects.attempt(closingFenceConstruct, after, initialPrefix ? factorySpace(effects, content, 'linePrefix', initialPrefix + 1) : content);\n }\n\n effects.enter('codeFlowValue');\n return contentContinue(code);\n }\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue');\n return content(code);\n }\n\n effects.consume(code);\n return contentContinue;\n }\n\n function after(code) {\n effects.exit('codeFenced');\n return ok(code);\n }\n\n function tokenizeClosingFence(effects, ok, nok) {\n var size = 0;\n return factorySpace(effects, closingSequenceStart, 'linePrefix', this.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4);\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence');\n effects.enter('codeFencedFenceSequence');\n return closingSequence(code);\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return closingSequence;\n }\n\n if (size < sizeOpen) return nok(code);\n effects.exit('codeFencedFenceSequence');\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code);\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence');\n return ok(code);\n }\n\n return nok(code);\n }\n }\n}\n\nmodule.exports = codeFenced;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar chunkedSplice = require('../util/chunked-splice.js');\n\nvar prefixSize = require('../util/prefix-size.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented,\n resolve: resolveCodeIndented\n};\nvar indentedContentConstruct = {\n tokenize: tokenizeIndentedContent,\n partial: true\n};\n\nfunction resolveCodeIndented(events, context) {\n var code = {\n type: 'codeIndented',\n start: events[0][1].start,\n end: events[events.length - 1][1].end\n };\n chunkedSplice(events, 0, 0, [['enter', code, context]]);\n chunkedSplice(events, events.length, 0, [['exit', code, context]]);\n return events;\n}\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return effects.attempt(indentedContentConstruct, afterPrefix, nok);\n\n function afterPrefix(code) {\n if (code === null) {\n return ok(code);\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContentConstruct, afterPrefix, ok)(code);\n }\n\n effects.enter('codeFlowValue');\n return content(code);\n }\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue');\n return afterPrefix(code);\n }\n\n effects.consume(code);\n return content;\n }\n}\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n var self = this;\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1);\n\n function afterPrefix(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1);\n }\n\n return prefixSize(self.events, 'linePrefix') < 4 ? nok(code) : ok(code);\n }\n}\n\nmodule.exports = codeIndented;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous: previous\n};\n\nfunction resolveCodeText(events) {\n var tailExitIndex = events.length - 4;\n var headEnterIndex = 3;\n var index;\n var enter; // If we start and end with an EOL or a space.\n\n if ((events[headEnterIndex][1].type === 'lineEnding' || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === 'lineEnding' || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex; // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[tailExitIndex][1].type = events[headEnterIndex][1].type = 'codeTextPadding';\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n } // Merge adjacent spaces and data.\n\n\n index = headEnterIndex - 1;\n tailExitIndex++;\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === 'lineEnding') {\n events[enter][1].type = 'codeTextData';\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n\n enter = undefined;\n }\n }\n\n return events;\n}\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === 'characterEscape';\n}\n\nfunction tokenizeCodeText(effects, ok, nok) {\n var sizeOpen = 0;\n var size;\n var token;\n return start;\n\n function start(code) {\n effects.enter('codeText');\n effects.enter('codeTextSequence');\n return openingSequence(code);\n }\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return openingSequence;\n }\n\n effects.exit('codeTextSequence');\n return gap(code);\n }\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n } // Closing fence?\n // Could also be data.\n\n\n if (code === 96) {\n token = effects.enter('codeTextSequence');\n size = 0;\n return closingSequence(code);\n } // Tabs don’t work, and virtual spaces don’t make sense.\n\n\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return gap;\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return gap;\n } // Data.\n\n\n effects.enter('codeTextData');\n return data(code);\n } // In code.\n\n\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit('codeTextData');\n return gap(code);\n }\n\n effects.consume(code);\n return data;\n } // Closing fence.\n\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return closingSequence;\n } // Done!\n\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence');\n effects.exit('codeText');\n return ok(code);\n } // More or less accents: mark as data.\n\n\n token.type = 'codeTextData';\n return data(code);\n }\n}\n\nmodule.exports = codeText;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar prefixSize = require('../util/prefix-size.js');\n\nvar subtokenize = require('../util/subtokenize.js');\n\nvar factorySpace = require('./factory-space.js'); // No name because it must not be turned off.\n\n\nvar content = {\n tokenize: tokenizeContent,\n resolve: resolveContent,\n interruptible: true,\n lazy: true\n};\nvar continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}; // Content is transparent: it’s parsed right now. That way, definitions are also\n// parsed right now: before text in paragraphs (specifically, media) are parsed.\n\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\nfunction tokenizeContent(effects, ok) {\n var previous;\n return start;\n\n function start(code) {\n effects.enter('content');\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n });\n return data(code);\n }\n\n function data(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n } // Data.\n\n\n effects.consume(code);\n return data;\n }\n\n function contentEnd(code) {\n effects.exit('chunkContent');\n effects.exit('content');\n return ok(code);\n }\n\n function contentContinue(code) {\n effects.consume(code);\n effects.exit('chunkContent');\n previous = previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous: previous\n });\n return data;\n }\n}\n\nfunction tokenizeContinuation(effects, ok, nok) {\n var self = this;\n return startLookahead;\n\n function startLookahead(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, prefixed, 'linePrefix');\n }\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n if (self.parser.constructs.disable.null.indexOf('codeIndented') > -1 || prefixSize(self.events, 'linePrefix') < 4) {\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n\n return ok(code);\n }\n}\n\nmodule.exports = content;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar normalizeIdentifier = require('../util/normalize-identifier.js');\n\nvar factoryDestination = require('./factory-destination.js');\n\nvar factoryLabel = require('./factory-label.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar factoryWhitespace = require('./factory-whitespace.js');\n\nvar factoryTitle = require('./factory-title.js');\n\nvar definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\nvar titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n};\n\nfunction tokenizeDefinition(effects, ok, nok) {\n var self = this;\n var identifier;\n return start;\n\n function start(code) {\n effects.enter('definition');\n return factoryLabel.call(self, effects, labelAfter, nok, 'definitionLabel', 'definitionLabelMarker', 'definitionLabelString')(code);\n }\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker'); // Note: blank lines can’t exist in content.\n\n return factoryWhitespace(effects, factoryDestination(effects, effects.attempt(titleConstruct, factorySpace(effects, after, 'whitespace'), factorySpace(effects, after, 'whitespace')), nok, 'definitionDestination', 'definitionDestinationLiteral', 'definitionDestinationLiteralMarker', 'definitionDestinationRaw', 'definitionDestinationString'));\n }\n\n return nok(code);\n }\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition');\n\n if (self.parser.defined.indexOf(identifier) < 0) {\n self.parser.defined.push(identifier);\n }\n\n return ok(code);\n }\n\n return nok(code);\n }\n}\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start;\n\n function start(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, before)(code) : nok(code);\n }\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, factorySpace(effects, after, 'whitespace'), nok, 'definitionTitle', 'definitionTitleMarker', 'definitionTitleString')(code);\n }\n\n return nok(code);\n }\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}\n\nmodule.exports = definition;","'use strict';\n\nvar asciiControl = require('../character/ascii-control.js');\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js'); // eslint-disable-next-line max-params\n\n\nfunction destinationFactory(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n var limit = max || Infinity;\n var balance = 0;\n return start;\n\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return destinationEnclosedBefore;\n }\n\n if (asciiControl(code) || code === 41) {\n return nok(code);\n }\n\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return destinationRaw(code);\n }\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n\n effects.enter(stringType);\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return destinationEnclosed(code);\n }\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString');\n effects.exit(stringType);\n return destinationEnclosedBefore(code);\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n\n effects.consume(code);\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed;\n }\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return destinationEnclosed;\n }\n\n return destinationEnclosed(code);\n }\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code);\n effects.consume(code);\n return destinationRaw;\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString');\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n\n effects.consume(code);\n return destinationRaw;\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code);\n effects.exit('chunkString');\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n\n if (asciiControl(code)) return nok(code);\n effects.consume(code);\n return code === 92 ? destinationRawEscape : destinationRaw;\n }\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return destinationRaw;\n }\n\n return destinationRaw(code);\n }\n}\n\nmodule.exports = destinationFactory;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownSpace = require('../character/markdown-space.js'); // eslint-disable-next-line max-params\n\n\nfunction labelFactory(effects, ok, nok, type, markerType, stringType) {\n var self = this;\n var size = 0;\n var data;\n return start;\n\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n function atBreak(code) {\n if (code === null || code === 91 || code === 93 && !data ||\n /* c8 ignore next */\n code === 94 &&\n /* c8 ignore next */\n !size &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs || size > 999) {\n return nok(code);\n }\n\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return atBreak;\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return label(code);\n }\n\n function label(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit('chunkString');\n return atBreak(code);\n }\n\n effects.consume(code);\n data = data || !markdownSpace(code);\n return code === 92 ? labelEscape : label;\n }\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return label;\n }\n\n return label(code);\n }\n}\n\nmodule.exports = labelFactory;","'use strict';\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nfunction spaceFactory(effects, ok, type, max) {\n var limit = max ? max - 1 : Infinity;\n var size = 0;\n return start;\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n\n return ok(code);\n }\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n\n effects.exit(type);\n return ok(code);\n }\n}\n\nmodule.exports = spaceFactory;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar factorySpace = require('./factory-space.js');\n\nfunction titleFactory(effects, ok, nok, type, markerType, stringType) {\n var marker;\n return start;\n\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return atFirstTitleBreak;\n }\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n effects.enter(stringType);\n return atTitleBreak(code);\n }\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return atFirstTitleBreak(marker);\n }\n\n if (code === null) {\n return nok(code);\n } // Note: blank lines can’t exist in content.\n\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, atTitleBreak, 'linePrefix');\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n });\n return title(code);\n }\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString');\n return atTitleBreak(code);\n }\n\n effects.consume(code);\n return code === 92 ? titleEscape : title;\n }\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return title;\n }\n\n return title(code);\n }\n}\n\nmodule.exports = titleFactory;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar factorySpace = require('./factory-space.js');\n\nfunction whitespaceFactory(effects, ok) {\n var seen;\n return start;\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n seen = true;\n return start;\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? 'linePrefix' : 'lineSuffix')(code);\n }\n\n return ok(code);\n }\n}\n\nmodule.exports = whitespaceFactory;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n function start(code) {\n effects.enter('hardBreakEscape');\n effects.enter('escapeMarker');\n effects.consume(code);\n return open;\n }\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker');\n effects.exit('hardBreakEscape');\n return ok(code);\n }\n\n return nok(code);\n }\n}\n\nmodule.exports = hardBreakEscape;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar chunkedSplice = require('../util/chunked-splice.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n};\n\nfunction resolveHeadingAtx(events, context) {\n var contentEnd = events.length - 2;\n var contentStart = 3;\n var content;\n var text; // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2;\n } // Suffix whitespace, part of the closing.\n\n\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === 'whitespace') {\n contentEnd -= 2;\n }\n\n if (events[contentEnd][1].type === 'atxHeadingSequence' && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === 'whitespace')) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: 'text'\n };\n chunkedSplice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n\n return events;\n}\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n var self = this;\n var size = 0;\n return start;\n\n function start(code) {\n effects.enter('atxHeading');\n effects.enter('atxHeadingSequence');\n return fenceOpenInside(code);\n }\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return fenceOpenInside;\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence');\n return self.interrupt ? ok(code) : headingBreak(code);\n }\n\n return nok(code);\n }\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence');\n return sequence(code);\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading');\n return ok(code);\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code);\n }\n\n effects.enter('atxHeadingText');\n return data(code);\n }\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code);\n return sequence;\n }\n\n effects.exit('atxHeadingSequence');\n return headingBreak(code);\n }\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText');\n return headingBreak(code);\n }\n\n effects.consume(code);\n return data;\n }\n}\n\nmodule.exports = headingAtx;","'use strict';\n\nvar asciiAlpha = require('../character/ascii-alpha.js');\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js');\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar fromCharCode = require('../constant/from-char-code.js');\n\nvar htmlBlockNames = require('../constant/html-block-names.js');\n\nvar htmlRawNames = require('../constant/html-raw-names.js');\n\nvar partialBlankLine = require('./partial-blank-line.js');\n\nvar htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n};\nvar nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n};\n\nfunction resolveToHtmlFlow(events) {\n var index = events.length;\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break;\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start; // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start; // Remove the line prefix.\n\n events.splice(index - 2, 2);\n }\n\n return events;\n}\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n var self = this;\n var kind;\n var startTag;\n var buffer;\n var index;\n var marker;\n return start;\n\n function start(code) {\n effects.enter('htmlFlow');\n effects.enter('htmlFlowData');\n effects.consume(code);\n return open;\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationStart;\n }\n\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n\n if (code === 63) {\n effects.consume(code);\n kind = 3; // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code);\n buffer = fromCharCode(code);\n startTag = true;\n return tagName;\n }\n\n return nok(code);\n }\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code);\n kind = 2;\n return commentOpenInside;\n }\n\n if (code === 91) {\n effects.consume(code);\n kind = 5;\n buffer = 'CDATA[';\n index = 0;\n return cdataOpenInside;\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code);\n kind = 4;\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n return nok(code);\n }\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n return nok(code);\n }\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code);\n return index === buffer.length ? self.interrupt ? ok : continuation : cdataOpenInside;\n }\n\n return nok(code);\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n buffer = fromCharCode(code);\n return tagName;\n }\n\n return nok(code);\n }\n\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n if (code !== 47 && startTag && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 1;\n return self.interrupt ? ok(code) : continuation(code);\n }\n\n if (htmlBlockNames.indexOf(buffer.toLowerCase()) > -1) {\n kind = 6;\n\n if (code === 47) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n return self.interrupt ? ok(code) : continuation(code);\n }\n\n kind = 7; // Do not support complete HTML when interrupting.\n\n return self.interrupt ? nok(code) : startTag ? completeAttributeNameBefore(code) : completeClosingTagAfter(code);\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += fromCharCode(code);\n return tagName;\n }\n\n return nok(code);\n }\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n return self.interrupt ? ok : continuation;\n }\n\n return nok(code);\n }\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n\n return completeEnd(code);\n }\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n\n return completeEnd(code);\n }\n\n function completeAttributeName(code) {\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n\n return completeAttributeNameAfter(code);\n }\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n\n return completeAttributeNameBefore(code);\n }\n\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return completeAttributeValueQuoted;\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n\n marker = undefined;\n return completeAttributeValueUnquoted(code);\n }\n\n function completeAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n return completeAttributeValueQuotedAfter;\n }\n\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n\n return nok(code);\n }\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n\n return nok(code);\n }\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n\n return code === null || markdownLineEnding(code) ? continuation(code) : nok(code);\n }\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code);\n return continuationClose;\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code);\n return continuationCharacterDataInside;\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(nextBlankConstruct, continuationClose, continuationAtLineEnding)(code);\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code);\n }\n\n effects.consume(code);\n return continuation;\n }\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData');\n return htmlContinueStart(code);\n }\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code);\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return htmlContinueStart;\n }\n\n effects.enter('htmlFlowData');\n return continuation(code);\n }\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n\n return continuation(code);\n }\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n\n return continuation(code);\n }\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.indexOf(buffer.toLowerCase()) > -1) {\n effects.consume(code);\n return continuationClose;\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code);\n buffer += fromCharCode(code);\n return continuationRawEndTag;\n }\n\n return continuation(code);\n }\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n\n return continuation(code);\n }\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n return continuation(code);\n }\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData');\n return done(code);\n }\n\n effects.consume(code);\n return continuationClose;\n }\n\n function done(code) {\n effects.exit('htmlFlow');\n return ok(code);\n }\n}\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start;\n\n function start(code) {\n effects.exit('htmlFlowData');\n effects.enter('lineEndingBlank');\n effects.consume(code);\n effects.exit('lineEndingBlank');\n return effects.attempt(partialBlankLine, ok, nok);\n }\n}\n\nmodule.exports = htmlFlow;","'use strict';\n\nvar asciiAlpha = require('../character/ascii-alpha.js');\n\nvar asciiAlphanumeric = require('../character/ascii-alphanumeric.js');\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n var self = this;\n var marker;\n var buffer;\n var index;\n var returnState;\n return start;\n\n function start(code) {\n effects.enter('htmlText');\n effects.enter('htmlTextData');\n effects.consume(code);\n return open;\n }\n\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n\n return nok(code);\n }\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpen;\n }\n\n if (code === 91) {\n effects.consume(code);\n buffer = 'CDATA[';\n index = 0;\n return cdataOpen;\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n\n return nok(code);\n }\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentStart;\n }\n\n return nok(code);\n }\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code);\n }\n\n if (code === 45) {\n effects.consume(code);\n return commentStartDash;\n }\n\n return comment(code);\n }\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code);\n }\n\n return comment(code);\n }\n\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment;\n return atLineEnding(code);\n }\n\n effects.consume(code);\n return comment;\n }\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return end;\n }\n\n return comment(code);\n }\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code);\n return index === buffer.length ? cdata : cdataOpen;\n }\n\n return nok(code);\n }\n\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return atLineEnding(code);\n }\n\n effects.consume(code);\n return cdata;\n }\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n\n return cdata(code);\n }\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n\n return cdata(code);\n }\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return atLineEnding(code);\n }\n\n effects.consume(code);\n return declaration;\n }\n\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return atLineEnding(code);\n }\n\n effects.consume(code);\n return instruction;\n }\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n\n return nok(code);\n }\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n\n return tagCloseBetween(code);\n }\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return atLineEnding(code);\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n\n return end(code);\n }\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n\n return nok(code);\n }\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return atLineEnding(code);\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n\n return end(code);\n }\n\n function tagOpenAttributeName(code) {\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n\n return tagOpenAttributeNameAfter(code);\n }\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return atLineEnding(code);\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n\n return tagOpenBetween(code);\n }\n\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return atLineEnding(code);\n }\n\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueUnquoted;\n }\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n return tagOpenAttributeValueQuotedAfter;\n }\n\n if (code === null) {\n return nok(code);\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return atLineEnding(code);\n }\n\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n\n return nok(code);\n }\n\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n } // We can’t have blank lines in content, so no need to worry about empty\n // tokens.\n\n\n function atLineEnding(code) {\n effects.exit('htmlTextData');\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, afterPrefix, 'linePrefix', self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4);\n }\n\n function afterPrefix(code) {\n effects.enter('htmlTextData');\n return returnState(code);\n }\n\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit('htmlTextData');\n effects.exit('htmlText');\n return ok;\n }\n\n return nok(code);\n }\n}\n\nmodule.exports = htmlText;","'use strict';\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar chunkedPush = require('../util/chunked-push.js');\n\nvar chunkedSplice = require('../util/chunked-splice.js');\n\nvar normalizeIdentifier = require('../util/normalize-identifier.js');\n\nvar resolveAll = require('../util/resolve-all.js');\n\nvar shallow = require('../util/shallow.js');\n\nvar factoryDestination = require('./factory-destination.js');\n\nvar factoryLabel = require('./factory-label.js');\n\nvar factoryTitle = require('./factory-title.js');\n\nvar factoryWhitespace = require('./factory-whitespace.js');\n\nvar labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\nvar resourceConstruct = {\n tokenize: tokenizeResource\n};\nvar fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n};\nvar collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n};\n\nfunction resolveAllLabelEnd(events) {\n var index = -1;\n var token;\n\n while (++index < events.length) {\n token = events[index][1];\n\n if (!token._used && (token.type === 'labelImage' || token.type === 'labelLink' || token.type === 'labelEnd')) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2);\n token.type = 'data';\n index++;\n }\n }\n\n return events;\n}\n\nfunction resolveToLabelEnd(events, context) {\n var index = events.length;\n var offset = 0;\n var group;\n var label;\n var text;\n var token;\n var open;\n var close;\n var media; // Find an opening.\n\n while (index--) {\n token = events[index][1];\n\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === 'link' || token.type === 'labelLink' && token._inactive) {\n break;\n } // Mark other link openings as inactive, as we can’t have links in\n // links.\n\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === 'labelImage' || token.type === 'labelLink') && !token._balanced) {\n open = index;\n\n if (token.type !== 'labelLink') {\n offset = 2;\n break;\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index;\n }\n }\n\n group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: shallow(events[open][1].start),\n end: shallow(events[events.length - 1][1].end)\n };\n label = {\n type: 'label',\n start: shallow(events[open][1].start),\n end: shallow(events[close][1].end)\n };\n text = {\n type: 'labelText',\n start: shallow(events[open + offset + 2][1].end),\n end: shallow(events[close - 2][1].start)\n };\n media = [['enter', group, context], ['enter', label, context]]; // Opening marker.\n\n media = chunkedPush(media, events.slice(open + 1, open + offset + 3)); // Text open.\n\n media = chunkedPush(media, [['enter', text, context]]); // Between.\n\n media = chunkedPush(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context)); // Text close, marker close, label close.\n\n media = chunkedPush(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]); // Reference, resource, or so.\n\n media = chunkedPush(media, events.slice(close + 1)); // Media close.\n\n media = chunkedPush(media, [['exit', group, context]]);\n chunkedSplice(events, open, events.length, media);\n return events;\n}\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n var self = this;\n var index = self.events.length;\n var labelStart;\n var defined; // Find an opening.\n\n while (index--) {\n if ((self.events[index][1].type === 'labelImage' || self.events[index][1].type === 'labelLink') && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n\n return start;\n\n function start(code) {\n if (!labelStart) {\n return nok(code);\n } // It’s a balanced bracket, but contains a link.\n\n\n if (labelStart._inactive) return balanced(code);\n defined = self.parser.defined.indexOf(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }))) > -1;\n effects.enter('labelEnd');\n effects.enter('labelMarker');\n effects.consume(code);\n effects.exit('labelMarker');\n effects.exit('labelEnd');\n return afterLabelEnd;\n }\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(resourceConstruct, ok, defined ? ok : balanced)(code);\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n\n if (code === 91) {\n return effects.attempt(fullReferenceConstruct, ok, defined ? effects.attempt(collapsedReferenceConstruct, ok, balanced) : balanced)(code);\n } // Shortcut reference: `[asd]`?\n\n\n return defined ? ok(code) : balanced(code);\n }\n\n function balanced(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\nfunction tokenizeResource(effects, ok, nok) {\n return start;\n\n function start(code) {\n effects.enter('resource');\n effects.enter('resourceMarker');\n effects.consume(code);\n effects.exit('resourceMarker');\n return factoryWhitespace(effects, open);\n }\n\n function open(code) {\n if (code === 41) {\n return end(code);\n }\n\n return factoryDestination(effects, destinationAfter, nok, 'resourceDestination', 'resourceDestinationLiteral', 'resourceDestinationLiteralMarker', 'resourceDestinationRaw', 'resourceDestinationString', 3)(code);\n }\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, between)(code) : end(code);\n }\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, factoryWhitespace(effects, end), nok, 'resourceTitle', 'resourceTitleMarker', 'resourceTitleString')(code);\n }\n\n return end(code);\n }\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker');\n effects.consume(code);\n effects.exit('resourceMarker');\n effects.exit('resource');\n return ok;\n }\n\n return nok(code);\n }\n}\n\nfunction tokenizeFullReference(effects, ok, nok) {\n var self = this;\n return start;\n\n function start(code) {\n return factoryLabel.call(self, effects, afterLabel, nok, 'reference', 'referenceMarker', 'referenceString')(code);\n }\n\n function afterLabel(code) {\n return self.parser.defined.indexOf(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) < 0 ? nok(code) : ok(code);\n }\n}\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start;\n\n function start(code) {\n effects.enter('reference');\n effects.enter('referenceMarker');\n effects.consume(code);\n effects.exit('referenceMarker');\n return open;\n }\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker');\n effects.consume(code);\n effects.exit('referenceMarker');\n effects.exit('reference');\n return ok;\n }\n\n return nok(code);\n }\n}\n\nmodule.exports = labelEnd;","'use strict';\n\nvar labelEnd = require('./label-end.js');\n\nvar labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n var self = this;\n return start;\n\n function start(code) {\n effects.enter('labelImage');\n effects.enter('labelImageMarker');\n effects.consume(code);\n effects.exit('labelImageMarker');\n return open;\n }\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker');\n effects.consume(code);\n effects.exit('labelMarker');\n effects.exit('labelImage');\n return after;\n }\n\n return nok(code);\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs ?\n /* c8 ignore next */\n nok(code) : ok(code);\n }\n}\n\nmodule.exports = labelStartImage;","'use strict';\n\nvar labelEnd = require('./label-end.js');\n\nvar labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n var self = this;\n return start;\n\n function start(code) {\n effects.enter('labelLink');\n effects.enter('labelMarker');\n effects.consume(code);\n effects.exit('labelMarker');\n effects.exit('labelLink');\n return after;\n }\n\n function after(code) {\n /* c8 ignore next */\n return code === 94 &&\n /* c8 ignore next */\n '_hiddenFootnoteSupport' in self.parser.constructs ?\n /* c8 ignore next */\n nok(code) : ok(code);\n }\n}\n\nmodule.exports = labelStartLink;","'use strict';\n\nvar factorySpace = require('./factory-space.js');\n\nvar lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n function start(code) {\n effects.enter('lineEnding');\n effects.consume(code);\n effects.exit('lineEnding');\n return factorySpace(effects, ok, 'linePrefix');\n }\n}\n\nmodule.exports = lineEnding;","'use strict';\n\nvar asciiDigit = require('../character/ascii-digit.js');\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar prefixSize = require('../util/prefix-size.js');\n\nvar sizeChunks = require('../util/size-chunks.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar partialBlankLine = require('./partial-blank-line.js');\n\nvar thematicBreak = require('./thematic-break.js');\n\nvar list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n};\nvar listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n};\nvar indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\nfunction tokenizeListStart(effects, ok, nok) {\n var self = this;\n var initialSize = prefixSize(self.events, 'linePrefix');\n var size = 0;\n return start;\n\n function start(code) {\n var kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? 'listUnordered' : 'listOrdered');\n\n if (kind === 'listUnordered' ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix');\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix');\n effects.enter('listItemValue');\n return inside(code);\n }\n }\n\n return nok(code);\n }\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit('listItemValue');\n return atMarker(code);\n }\n\n return nok(code);\n }\n\n function atMarker(code) {\n effects.enter('listItemMarker');\n effects.consume(code);\n effects.exit('listItemMarker');\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(partialBlankLine, // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace');\n effects.consume(code);\n effects.exit('listItemPrefixWhitespace');\n return endOfPrefix;\n }\n\n return nok(code);\n }\n\n function endOfPrefix(code) {\n self.containerState.size = initialSize + sizeChunks(self.sliceStream(effects.exit('listItemPrefix')));\n return ok(code);\n }\n}\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n var self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(partialBlankLine, onBlank, notBlank);\n\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine; // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(effects, ok, 'listItemIndent', self.containerState.size + 1)(code);\n }\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n\n self.containerState.furtherBlankLines = self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true; // As we’re closing flow, we’re no longer interrupting.\n\n self.interrupt = undefined;\n return factorySpace(effects, effects.attempt(list, ok, nok), 'linePrefix', self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4)(code);\n }\n}\n\nfunction tokenizeIndent(effects, ok, nok) {\n var self = this;\n return factorySpace(effects, afterPrefix, 'listItemIndent', self.containerState.size + 1);\n\n function afterPrefix(code) {\n return prefixSize(self.events, 'listItemIndent') === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n var self = this;\n return factorySpace(effects, afterPrefix, 'listItemPrefixWhitespace', self.parser.constructs.disable.null.indexOf('codeIndented') > -1 ? undefined : 4 + 1);\n\n function afterPrefix(code) {\n return markdownSpace(code) || !prefixSize(self.events, 'listItemPrefixWhitespace') ? nok(code) : ok(code);\n }\n}\n\nmodule.exports = list;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar partialBlankLine = {\n tokenize: tokenizePartialBlankLine,\n partial: true\n};\n\nfunction tokenizePartialBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix');\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}\n\nmodule.exports = partialBlankLine;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar shallow = require('../util/shallow.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n};\n\nfunction resolveToSetextUnderline(events, context) {\n var index = events.length;\n var content;\n var text;\n var definition;\n var heading; // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index;\n break;\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index;\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index;\n }\n }\n }\n\n heading = {\n type: 'setextHeading',\n start: shallow(events[text][1].start),\n end: shallow(events[events.length - 1][1].end)\n }; // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText'; // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = shallow(events[definition][1].end);\n } else {\n events[content][1] = heading;\n } // Add the heading exit at the end.\n\n\n events.push(['exit', heading, context]);\n return events;\n}\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n var self = this;\n var index = self.events.length;\n var marker;\n var paragraph; // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== 'lineEnding' && self.events[index][1].type !== 'linePrefix' && self.events[index][1].type !== 'content') {\n paragraph = self.events[index][1].type === 'paragraph';\n break;\n }\n }\n\n return start;\n\n function start(code) {\n if (!self.lazy && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine');\n effects.enter('setextHeadingLineSequence');\n marker = code;\n return closingSequence(code);\n }\n\n return nok(code);\n }\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code);\n return closingSequence;\n }\n\n effects.exit('setextHeadingLineSequence');\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code);\n }\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine');\n return ok(code);\n }\n\n return nok(code);\n }\n}\n\nmodule.exports = setextUnderline;","'use strict';\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar markdownSpace = require('../character/markdown-space.js');\n\nvar factorySpace = require('./factory-space.js');\n\nvar thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n var size = 0;\n var marker;\n return start;\n\n function start(code) {\n effects.enter('thematicBreak');\n marker = code;\n return atBreak(code);\n }\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence');\n return sequence(code);\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code);\n }\n\n if (size < 3 || code !== null && !markdownLineEnding(code)) {\n return nok(code);\n }\n\n effects.exit('thematicBreak');\n return ok(code);\n }\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n\n effects.exit('thematicBreakSequence');\n return atBreak(code);\n }\n}\n\nmodule.exports = thematicBreak;","'use strict';\n\nvar chunkedSplice = require('./chunked-splice.js');\n\nfunction chunkedPush(list, items) {\n if (list.length) {\n chunkedSplice(list, list.length, 0, items);\n return list;\n }\n\n return items;\n}\n\nmodule.exports = chunkedPush;","'use strict';\n\nvar splice = require('../constant/splice.js'); // causes a stack overflow in V8 when trying to insert 100k items for instance.\n\n\nfunction chunkedSplice(list, start, remove, items) {\n var end = list.length;\n var chunkStart = 0;\n var parameters; // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n\n remove = remove > 0 ? remove : 0; // No need to chunk the items if there’s only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n splice.apply(list, parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) splice.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000);\n parameters.unshift(start, 0);\n splice.apply(list, parameters);\n chunkStart += 10000;\n start += 10000;\n }\n }\n}\n\nmodule.exports = chunkedSplice;","'use strict';\n\nvar markdownLineEndingOrSpace = require('../character/markdown-line-ending-or-space.js');\n\nvar unicodePunctuation = require('../character/unicode-punctuation.js');\n\nvar unicodeWhitespace = require('../character/unicode-whitespace.js'); // Classify whether a character is unicode whitespace, unicode punctuation, or\n// anything else.\n// Used for attention (emphasis, strong), whose sequences can open or close\n// based on the class of surrounding characters.\n\n\nfunction classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n\n if (unicodePunctuation(code)) {\n return 2;\n }\n}\n\nmodule.exports = classifyCharacter;","'use strict';\n\nvar hasOwnProperty = require('../constant/has-own-property.js');\n\nvar chunkedSplice = require('./chunked-splice.js');\n\nvar miniflat = require('./miniflat.js');\n\nfunction combineExtensions(extensions) {\n var all = {};\n var index = -1;\n\n while (++index < extensions.length) {\n extension(all, extensions[index]);\n }\n\n return all;\n}\n\nfunction extension(all, extension) {\n var hook;\n var left;\n var right;\n var code;\n\n for (hook in extension) {\n left = hasOwnProperty.call(all, hook) ? all[hook] : all[hook] = {};\n right = extension[hook];\n\n for (code in right) {\n left[code] = constructs(miniflat(right[code]), hasOwnProperty.call(left, code) ? left[code] : []);\n }\n }\n}\n\nfunction constructs(list, existing) {\n var index = -1;\n var before = [];\n\n while (++index < list.length) {\n ;\n (list[index].add === 'after' ? existing : before).push(list[index]);\n }\n\n chunkedSplice(existing, 0, 0, before);\n return existing;\n}\n\nmodule.exports = combineExtensions;","'use strict';\n\nvar assign = require('../constant/assign.js');\n\nvar markdownLineEnding = require('../character/markdown-line-ending.js');\n\nvar chunkedPush = require('./chunked-push.js');\n\nvar chunkedSplice = require('./chunked-splice.js');\n\nvar miniflat = require('./miniflat.js');\n\nvar resolveAll = require('./resolve-all.js');\n\nvar serializeChunks = require('./serialize-chunks.js');\n\nvar shallow = require('./shallow.js');\n\nvar sliceChunks = require('./slice-chunks.js'); // Create a tokenizer.\n// Tokenizers deal with one type of data (e.g., containers, flow, text).\n// The parser is the object dealing with it all.\n// `initialize` works like other constructs, except that only its `tokenize`\n// function is used, in which case it doesn’t receive an `ok` or `nok`.\n// `from` can be given to set the point before the first character, although\n// when further lines are indented, they must be set with `defineSkip`.\n\n\nfunction createTokenizer(parser, initialize, from) {\n var point = from ? shallow(from) : {\n line: 1,\n column: 1,\n offset: 0\n };\n var columnStart = {};\n var resolveAllConstructs = [];\n var chunks = [];\n var stack = [];\n var effects = {\n consume: consume,\n enter: enter,\n exit: exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n }),\n lazy: constructFactory(onsuccessfulcheck, {\n lazy: true\n })\n }; // State and tools for resolving and serializing.\n\n var context = {\n previous: null,\n events: [],\n parser: parser,\n sliceStream: sliceStream,\n sliceSerialize: sliceSerialize,\n now: now,\n defineSkip: skip,\n write: write\n }; // The state function.\n\n var state = initialize.tokenize.call(context, effects); // Track which character we expect to be consumed, to catch bugs.\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n } // Store where we are in the input stream.\n\n\n point._index = 0;\n point._bufferIndex = -1;\n return context;\n\n function write(slice) {\n chunks = chunkedPush(chunks, slice);\n main(); // Exit if we’re not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n\n addResult(initialize, 0); // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n } //\n // Tools.\n //\n\n\n function sliceSerialize(token) {\n return serializeChunks(sliceStream(token));\n }\n\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n function now() {\n return shallow(point);\n }\n\n function skip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n } //\n // State management.\n //\n // Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n // `consume`).\n // Here is where we walk through the chunks, which either include strings of\n // several characters, or numerical character codes.\n // The reason to do this in a loop instead of a call is so the stack can\n // drain.\n\n\n function main() {\n var chunkIndex;\n var chunk;\n\n while (point._index < chunks.length) {\n chunk = chunks[point._index]; // If we’re in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n } // Deal with one code.\n\n\n function go(code) {\n state = state(code);\n } // Move a character forward.\n\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n } // Not in a string chunk.\n\n\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++; // At end of string chunk.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n } // Expose the previous character.\n\n\n context.previous = code; // Mark as consumed.\n } // Start a token.\n\n\n function enter(type, fields) {\n var token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n } // Stop a token.\n\n\n function exit(type) {\n var token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n } // Use results.\n\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n } // Discard results.\n\n\n function onsuccessfulcheck(construct, info) {\n info.restore();\n } // Factory to attempt/check/interrupt.\n\n\n function constructFactory(onreturn, fields) {\n return hook; // Handle either an object mapping codes to constructs, a list of\n // constructs, or a single construct.\n\n function hook(constructs, returnState, bogusState) {\n var listOfConstructs;\n var constructIndex;\n var currentConstruct;\n var info;\n return constructs.tokenize || 'length' in constructs ? handleListOfConstructs(miniflat(constructs)) : handleMapOfConstructs;\n\n function handleMapOfConstructs(code) {\n if (code in constructs || null in constructs) {\n return handleListOfConstructs(constructs.null ?\n /* c8 ignore next */\n miniflat(constructs[code]).concat(miniflat(constructs.null)) : constructs[code])(code);\n }\n\n return bogusState(code);\n }\n\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n return handleConstruct(list[constructIndex]);\n }\n\n function handleConstruct(construct) {\n return start;\n\n function start(code) {\n // To do: not nede to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n if (construct.name && context.parser.constructs.disable.null.indexOf(construct.name) > -1) {\n return nok();\n }\n\n return construct.tokenize.call(fields ? assign({}, context, fields) : context, effects, ok, nok)(code);\n }\n }\n\n function ok(code) {\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n function nok(code) {\n info.restore();\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n\n return bogusState;\n }\n }\n }\n\n function addResult(construct, from) {\n if (construct.resolveAll && resolveAllConstructs.indexOf(construct) < 0) {\n resolveAllConstructs.push(construct);\n }\n\n if (construct.resolve) {\n chunkedSplice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n function store() {\n var startPoint = now();\n var startPrevious = context.previous;\n var startCurrentConstruct = context.currentConstruct;\n var startEventsIndex = context.events.length;\n var startStack = Array.from(stack);\n return {\n restore: restore,\n from: startEventsIndex\n };\n\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\nmodule.exports = createTokenizer;","'use strict';\n\nfunction miniflat(value) {\n return value === null || value === undefined ? [] : 'length' in value ? value : [value];\n}\n\nmodule.exports = miniflat;","'use strict'; // chunks (replacement characters, tabs, or line endings).\n\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n return point;\n}\n\nmodule.exports = movePoint;","'use strict';\n\nfunction normalizeIdentifier(value) {\n return value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no object method is uppercase.\n .toLowerCase().toUpperCase();\n}\n\nmodule.exports = normalizeIdentifier;","'use strict';\n\nvar sizeChunks = require('./size-chunks.js');\n\nfunction prefixSize(events, type) {\n var tail = events[events.length - 1];\n if (!tail || tail[1].type !== type) return 0;\n return sizeChunks(tail[2].sliceStream(tail[1]));\n}\n\nmodule.exports = prefixSize;","'use strict';\n\nvar fromCharCode = require('../constant/from-char-code.js');\n\nfunction regexCheck(regex) {\n return check;\n\n function check(code) {\n return regex.test(fromCharCode(code));\n }\n}\n\nmodule.exports = regexCheck;","'use strict';\n\nfunction resolveAll(constructs, events, context) {\n var called = [];\n var index = -1;\n var resolve;\n\n while (++index < constructs.length) {\n resolve = constructs[index].resolveAll;\n\n if (resolve && called.indexOf(resolve) < 0) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n\n return events;\n}\n\nmodule.exports = resolveAll;","'use strict';\n\nvar fromCharCode = require('../constant/from-char-code.js');\n\nfunction safeFromInt(value, base) {\n var code = parseInt(value, base);\n\n if ( // C0 except for HT, LF, FF, CR, space\n code < 9 || code === 11 || code > 13 && code < 32 || // Control character (DEL) of the basic block and C1 controls.\n code > 126 && code < 160 || // Lone high surrogates and low surrogates.\n code > 55295 && code < 57344 || // Noncharacters.\n code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || // Out of range\n code > 1114111) {\n return \"\\uFFFD\";\n }\n\n return fromCharCode(code);\n}\n\nmodule.exports = safeFromInt;","'use strict';\n\nvar fromCharCode = require('../constant/from-char-code.js');\n\nfunction serializeChunks(chunks) {\n var index = -1;\n var result = [];\n var chunk;\n var value;\n var atTab;\n\n while (++index < chunks.length) {\n chunk = chunks[index];\n\n if (typeof chunk === 'string') {\n value = chunk;\n } else if (chunk === -5) {\n value = '\\r';\n } else if (chunk === -4) {\n value = '\\n';\n } else if (chunk === -3) {\n value = '\\r' + '\\n';\n } else if (chunk === -2) {\n value = '\\t';\n } else if (chunk === -1) {\n if (atTab) continue;\n value = ' ';\n } else {\n // Currently only replacement character.\n value = fromCharCode(chunk);\n }\n\n atTab = chunk === -2;\n result.push(value);\n }\n\n return result.join('');\n}\n\nmodule.exports = serializeChunks;","'use strict';\n\nvar assign = require('../constant/assign.js');\n\nfunction shallow(object) {\n return assign({}, object);\n}\n\nmodule.exports = shallow;","'use strict'; // Counts tabs based on their expanded size, and CR+LF as one character.\n\nfunction sizeChunks(chunks) {\n var index = -1;\n var size = 0;\n\n while (++index < chunks.length) {\n size += typeof chunks[index] === 'string' ? chunks[index].length : 1;\n }\n\n return size;\n}\n\nmodule.exports = sizeChunks;","'use strict';\n\nfunction sliceChunks(chunks, token) {\n var startIndex = token.start._index;\n var startBufferIndex = token.start._bufferIndex;\n var endIndex = token.end._index;\n var endBufferIndex = token.end._bufferIndex;\n var view;\n\n if (startIndex === endIndex) {\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n\n if (startBufferIndex > -1) {\n view[0] = view[0].slice(startBufferIndex);\n }\n\n if (endBufferIndex > 0) {\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n\n return view;\n}\n\nmodule.exports = sliceChunks;","'use strict';\n\nvar assign = require('../constant/assign.js');\n\nvar chunkedSplice = require('./chunked-splice.js');\n\nvar shallow = require('./shallow.js');\n\nfunction subtokenize(events) {\n var jumps = {};\n var index = -1;\n var event;\n var lineIndex;\n var otherIndex;\n var otherEvent;\n var parameters;\n var subevents;\n var more;\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n\n event = events[index]; // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (index && event[1].type === 'chunkFlow' && events[index - 1][1].type === 'listItemPrefix') {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === 'lineEndingBlank') {\n otherIndex += 2;\n }\n\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === 'content') {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break;\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1].isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n } // Enter.\n\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n } // Exit.\n else if (event[1]._container || event[1]._movePreviousLineEndings) {\n otherIndex = index;\n lineIndex = undefined;\n\n while (otherIndex--) {\n otherEvent = events[otherIndex];\n\n if (otherEvent[1].type === 'lineEnding' || otherEvent[1].type === 'lineEndingBlank') {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank';\n }\n\n otherEvent[1].type = 'lineEnding';\n lineIndex = otherIndex;\n }\n } else {\n break;\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = shallow(events[lineIndex][1].start); // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n chunkedSplice(events, lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n return !more;\n}\n\nfunction subcontent(events, eventIndex) {\n var token = events[eventIndex][1];\n var context = events[eventIndex][2];\n var startPosition = eventIndex - 1;\n var startPositions = [];\n var tokenizer = token._tokenizer || context.parser[token.contentType](token.start);\n var childEvents = tokenizer.events;\n var jumps = [];\n var gaps = {};\n var stream;\n var previous;\n var index;\n var entered;\n var end;\n var adjust; // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (token) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== token) {// Empty.\n }\n\n startPositions.push(startPosition);\n\n if (!token._tokenizer) {\n stream = context.sliceStream(token);\n\n if (!token.next) {\n stream.push(null);\n }\n\n if (previous) {\n tokenizer.defineSkip(token.start);\n }\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n\n tokenizer.write(stream);\n\n if (token.isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n } // Unravel the next token.\n\n\n previous = token;\n token = token.next;\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n\n token = previous;\n index = childEvents.length;\n\n while (index--) {\n // Make sure we’ve at least seen something (final eol is part of the last\n // token).\n if (childEvents[index][0] === 'enter') {\n entered = true;\n } else if ( // Find a void token that includes a break.\n entered && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n add(childEvents.slice(index + 1, end)); // Help GC.\n\n token._tokenizer = token.next = undefined;\n token = token.previous;\n end = index + 1;\n }\n } // Help GC.\n\n\n tokenizer.events = token._tokenizer = token.next = undefined; // Do head:\n\n add(childEvents.slice(0, end));\n index = -1;\n adjust = 0;\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n\n return gaps;\n\n function add(slice) {\n var start = startPositions.pop();\n jumps.unshift([start, start + slice.length - 1]);\n chunkedSplice(events, start, 2, slice);\n }\n}\n\nmodule.exports = subtokenize;","'use strict';\n/* eslint-env browser */\n\nvar el;\nvar semicolon = 59; // ';'\n\nmodule.exports = decodeEntity;\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';';\n var char;\n el = el || document.createElement('i');\n el.innerHTML = entity;\n char = el.textContent; // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false;\n } // If the decoded string is equal to the input, the entity was not valid\n\n\n return char === entity ? false : char;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n\n if (result != null) {\n error = result;\n }\n });\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n return chainedCheckType;\n}\n\nmodule.exports = exports['default'];","import { useEffect, useRef } from 'react';\n/**\n * Runs an effect only when the dependencies have changed, skipping the\n * initial \"on mount\" run. Caution, if the dependency list never changes,\n * the effect is **never run**\n *\n * ```ts\n * const ref = useRef(null);\n *\n * // focuses an element only if the focus changes, and not on mount\n * useUpdateEffect(() => {\n * const element = ref.current?.children[focusedIdx] as HTMLElement\n *\n * element?.focus()\n *\n * }, [focusedIndex])\n * ```\n * @param effect An effect to run on mount\n *\n * @category effects\n */\n\nfunction useUpdateEffect(fn, deps) {\n var isFirst = useRef(true);\n useEffect(function () {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n\n return fn();\n }, deps);\n}\n\nexport default useUpdateEffect;","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\n\nexport default function useWillUnmount(fn) {\n var onUnmount = useUpdatedRef(fn);\n useEffect(function () {\n return function () {\n return onUnmount.current();\n };\n }, []);\n}","import { useRef } from 'react';\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\n\nexport default function useUpdatedRef(value) {\n var valueRef = useRef(value);\n valueRef.current = value;\n return valueRef;\n}","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\n\nvar MAX_DELAY_MS = Math.pow(2, 31) - 1;\n\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n var delayMs = timeoutAtMs - Date.now();\n handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(function () {\n return setChainedTimeout(handleRef, fn, timeoutAtMs);\n }, MAX_DELAY_MS);\n}\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n *
\n * {hello ?

Hello

: null}\n *
\n * );\n * ```\n */\n\n\nexport default function useTimeout() {\n var isMounted = useMounted(); // types are confused between node and web here IDK\n\n var handleRef = useRef();\n useWillUnmount(function () {\n return clearTimeout(handleRef.current);\n });\n return useMemo(function () {\n var clear = function clear() {\n return clearTimeout(handleRef.current);\n };\n\n function set(fn, delayMs) {\n if (delayMs === void 0) {\n delayMs = 0;\n }\n\n if (!isMounted()) return;\n clear();\n\n if (delayMs <= MAX_DELAY_MS) {\n // For simplicity, if the timeout is short, just set a normal timeout.\n handleRef.current = setTimeout(fn, delayMs);\n } else {\n setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n }\n }\n\n return {\n set: set,\n clear: clear\n };\n }, []);\n}","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('carousel-caption');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"as\", \"bsPrefix\", \"children\", \"className\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar CarouselItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n bsPrefix = _ref.bsPrefix,\n children = _ref.children,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var finalClassName = classNames(className, useBootstrapPrefix(bsPrefix, 'carousel-item'));\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: finalClassName\n }), children);\n});\nCarouselItem.displayName = 'CarouselItem';\nexport default CarouselItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"as\", \"bsPrefix\", \"slide\", \"fade\", \"controls\", \"indicators\", \"activeIndex\", \"onSelect\", \"onSlide\", \"onSlid\", \"interval\", \"keyboard\", \"onKeyDown\", \"pause\", \"onMouseOver\", \"onMouseOut\", \"wrap\", \"touch\", \"onTouchStart\", \"onTouchMove\", \"onTouchEnd\", \"prevIcon\", \"prevLabel\", \"nextIcon\", \"nextLabel\", \"className\", \"children\"];\nimport useEventCallback from '@restart/hooks/useEventCallback';\nimport useUpdateEffect from '@restart/hooks/useUpdateEffect';\nimport useCommittedRef from '@restart/hooks/useCommittedRef';\nimport useTimeout from '@restart/hooks/useTimeout';\nimport classNames from 'classnames';\nimport Transition from 'react-transition-group/Transition';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { useUncontrolled } from 'uncontrollable';\nimport CarouselCaption from './CarouselCaption';\nimport CarouselItem from './CarouselItem';\nimport { map, forEach } from './ElementChildren';\nimport SafeAnchor from './SafeAnchor';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport transitionEndListener from './transitionEndListener';\nimport triggerBrowserReflow from './triggerBrowserReflow';\nvar SWIPE_THRESHOLD = 40;\nvar propTypes = {\n /**\n * @default 'carousel'\n */\n bsPrefix: PropTypes.string,\n as: PropTypes.elementType,\n\n /**\n * Enables animation on the Carousel as it transitions between slides.\n */\n slide: PropTypes.bool,\n\n /** Animates slides with a crossfade animation instead of the default slide animation */\n fade: PropTypes.bool,\n\n /**\n * Show the Carousel previous and next arrows for changing the current slide\n */\n controls: PropTypes.bool,\n\n /**\n * Show a set of slide position indicators\n */\n indicators: PropTypes.bool,\n\n /**\n * Controls the current visible slide\n *\n * @controllable onSelect\n */\n activeIndex: PropTypes.number,\n\n /**\n * Callback fired when the active item changes.\n *\n * ```js\n * (eventKey: number, event: Object | null) => void\n * ```\n *\n * @controllable activeIndex\n */\n onSelect: PropTypes.func,\n\n /**\n * Callback fired when a slide transition starts.\n *\n * ```js\n * (eventKey: number, direction: 'left' | 'right') => void\n */\n onSlide: PropTypes.func,\n\n /**\n * Callback fired when a slide transition ends.\n *\n * ```js\n * (eventKey: number, direction: 'left' | 'right') => void\n */\n onSlid: PropTypes.func,\n\n /**\n * The amount of time to delay between automatically cycling an item. If `null`, carousel will not automatically cycle.\n */\n interval: PropTypes.number,\n\n /** Whether the carousel should react to keyboard events. */\n keyboard: PropTypes.bool,\n\n /**\n * If set to `\"hover\"`, pauses the cycling of the carousel on `mouseenter` and resumes the cycling of the carousel on `mouseleave`. If set to `false`, hovering over the carousel won't pause it.\n *\n * On touch-enabled devices, when set to `\"hover\"`, cycling will pause on `touchend` (once the user finished interacting with the carousel) for two intervals, before automatically resuming. Note that this is in addition to the above mouse behavior.\n */\n pause: PropTypes.oneOf(['hover', false]),\n\n /** Whether the carousel should cycle continuously or have hard stops. */\n wrap: PropTypes.bool,\n\n /**\n * Whether the carousel should support left/right swipe interactions on touchscreen devices.\n */\n touch: PropTypes.bool,\n\n /** Override the default button icon for the \"previous\" control */\n prevIcon: PropTypes.node,\n\n /**\n * Label shown to screen readers only, can be used to show the previous element\n * in the carousel.\n * Set to null to deactivate.\n */\n prevLabel: PropTypes.string,\n\n /** Override the default button icon for the \"next\" control */\n nextIcon: PropTypes.node,\n\n /**\n * Label shown to screen readers only, can be used to show the next element\n * in the carousel.\n * Set to null to deactivate.\n */\n nextLabel: PropTypes.string\n};\nvar defaultProps = {\n slide: true,\n fade: false,\n controls: true,\n indicators: true,\n defaultActiveIndex: 0,\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n wrap: true,\n touch: true,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-prev-icon\"\n }),\n prevLabel: 'Previous',\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"carousel-control-next-icon\"\n }),\n nextLabel: 'Next'\n};\n\nfunction isVisible(element) {\n if (!element || !element.style || !element.parentNode || !element.parentNode.style) {\n return false;\n }\n\n var elementStyle = getComputedStyle(element);\n return elementStyle.display !== 'none' && elementStyle.visibility !== 'hidden' && getComputedStyle(element.parentNode).display !== 'none';\n}\n\nfunction CarouselFunc(uncontrolledProps, ref) {\n var _useUncontrolled = useUncontrolled(uncontrolledProps, {\n activeIndex: 'onSelect'\n }),\n _useUncontrolled$as = _useUncontrolled.as,\n Component = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,\n bsPrefix = _useUncontrolled.bsPrefix,\n slide = _useUncontrolled.slide,\n fade = _useUncontrolled.fade,\n controls = _useUncontrolled.controls,\n indicators = _useUncontrolled.indicators,\n activeIndex = _useUncontrolled.activeIndex,\n onSelect = _useUncontrolled.onSelect,\n onSlide = _useUncontrolled.onSlide,\n onSlid = _useUncontrolled.onSlid,\n interval = _useUncontrolled.interval,\n keyboard = _useUncontrolled.keyboard,\n onKeyDown = _useUncontrolled.onKeyDown,\n pause = _useUncontrolled.pause,\n onMouseOver = _useUncontrolled.onMouseOver,\n onMouseOut = _useUncontrolled.onMouseOut,\n wrap = _useUncontrolled.wrap,\n touch = _useUncontrolled.touch,\n onTouchStart = _useUncontrolled.onTouchStart,\n onTouchMove = _useUncontrolled.onTouchMove,\n onTouchEnd = _useUncontrolled.onTouchEnd,\n prevIcon = _useUncontrolled.prevIcon,\n prevLabel = _useUncontrolled.prevLabel,\n nextIcon = _useUncontrolled.nextIcon,\n nextLabel = _useUncontrolled.nextLabel,\n className = _useUncontrolled.className,\n children = _useUncontrolled.children,\n props = _objectWithoutPropertiesLoose(_useUncontrolled, _excluded);\n\n var prefix = useBootstrapPrefix(bsPrefix, 'carousel');\n var nextDirectionRef = useRef(null);\n\n var _useState = useState('next'),\n direction = _useState[0],\n setDirection = _useState[1];\n\n var _useState2 = useState(false),\n paused = _useState2[0],\n setPaused = _useState2[1];\n\n var _useState3 = useState(false),\n isSliding = _useState3[0],\n setIsSliding = _useState3[1];\n\n var _useState4 = useState(activeIndex || 0),\n renderedActiveIndex = _useState4[0],\n setRenderedActiveIndex = _useState4[1];\n\n if (!isSliding && activeIndex !== renderedActiveIndex) {\n if (nextDirectionRef.current) {\n setDirection(nextDirectionRef.current);\n } else {\n setDirection((activeIndex || 0) > renderedActiveIndex ? 'next' : 'prev');\n }\n\n if (slide) {\n setIsSliding(true);\n }\n\n setRenderedActiveIndex(activeIndex || 0);\n }\n\n useEffect(function () {\n if (nextDirectionRef.current) {\n nextDirectionRef.current = null;\n }\n });\n var numChildren = 0;\n var activeChildInterval; // Iterate to grab all of the children's interval values\n // (and count them, too)\n\n forEach(children, function (child, index) {\n ++numChildren;\n\n if (index === activeIndex) {\n activeChildInterval = child.props.interval;\n }\n });\n var activeChildIntervalRef = useCommittedRef(activeChildInterval);\n var prev = useCallback(function (event) {\n if (isSliding) {\n return;\n }\n\n var nextActiveIndex = renderedActiveIndex - 1;\n\n if (nextActiveIndex < 0) {\n if (!wrap) {\n return;\n }\n\n nextActiveIndex = numChildren - 1;\n }\n\n nextDirectionRef.current = 'prev';\n\n if (onSelect) {\n onSelect(nextActiveIndex, event);\n }\n }, [isSliding, renderedActiveIndex, onSelect, wrap, numChildren]); // This is used in the setInterval, so it should not invalidate.\n\n var next = useEventCallback(function (event) {\n if (isSliding) {\n return;\n }\n\n var nextActiveIndex = renderedActiveIndex + 1;\n\n if (nextActiveIndex >= numChildren) {\n if (!wrap) {\n return;\n }\n\n nextActiveIndex = 0;\n }\n\n nextDirectionRef.current = 'next';\n\n if (onSelect) {\n onSelect(nextActiveIndex, event);\n }\n });\n var elementRef = useRef();\n useImperativeHandle(ref, function () {\n return {\n element: elementRef.current,\n prev: prev,\n next: next\n };\n }); // This is used in the setInterval, so it should not invalidate.\n\n var nextWhenVisible = useEventCallback(function () {\n if (!document.hidden && isVisible(elementRef.current)) {\n next();\n }\n });\n var slideDirection = direction === 'next' ? 'left' : 'right';\n useUpdateEffect(function () {\n if (slide) {\n // These callbacks will be handled by the callbacks.\n return;\n }\n\n if (onSlide) {\n onSlide(renderedActiveIndex, slideDirection);\n }\n\n if (onSlid) {\n onSlid(renderedActiveIndex, slideDirection);\n }\n }, [renderedActiveIndex]);\n var orderClassName = prefix + \"-item-\" + direction;\n var directionalClassName = prefix + \"-item-\" + slideDirection;\n var handleEnter = useCallback(function (node) {\n triggerBrowserReflow(node);\n\n if (onSlide) {\n onSlide(renderedActiveIndex, slideDirection);\n }\n }, [onSlide, renderedActiveIndex, slideDirection]);\n var handleEntered = useCallback(function () {\n setIsSliding(false);\n\n if (onSlid) {\n onSlid(renderedActiveIndex, slideDirection);\n }\n }, [onSlid, renderedActiveIndex, slideDirection]);\n var handleKeyDown = useCallback(function (event) {\n if (keyboard && !/input|textarea/i.test(event.target.tagName)) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n prev(event);\n return;\n\n case 'ArrowRight':\n event.preventDefault();\n next(event);\n return;\n\n default:\n }\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n }, [keyboard, onKeyDown, prev, next]);\n var handleMouseOver = useCallback(function (event) {\n if (pause === 'hover') {\n setPaused(true);\n }\n\n if (onMouseOver) {\n onMouseOver(event);\n }\n }, [pause, onMouseOver]);\n var handleMouseOut = useCallback(function (event) {\n setPaused(false);\n\n if (onMouseOut) {\n onMouseOut(event);\n }\n }, [onMouseOut]);\n var touchStartXRef = useRef(0);\n var touchDeltaXRef = useRef(0);\n var touchUnpauseTimeout = useTimeout();\n var handleTouchStart = useCallback(function (event) {\n touchStartXRef.current = event.touches[0].clientX;\n touchDeltaXRef.current = 0;\n\n if (pause === 'hover') {\n setPaused(true);\n }\n\n if (onTouchStart) {\n onTouchStart(event);\n }\n }, [pause, onTouchStart]);\n var handleTouchMove = useCallback(function (event) {\n if (event.touches && event.touches.length > 1) {\n touchDeltaXRef.current = 0;\n } else {\n touchDeltaXRef.current = event.touches[0].clientX - touchStartXRef.current;\n }\n\n if (onTouchMove) {\n onTouchMove(event);\n }\n }, [onTouchMove]);\n var handleTouchEnd = useCallback(function (event) {\n if (touch) {\n var touchDeltaX = touchDeltaXRef.current;\n\n if (Math.abs(touchDeltaX) > SWIPE_THRESHOLD) {\n if (touchDeltaX > 0) {\n prev(event);\n } else {\n next(event);\n }\n }\n }\n\n if (pause === 'hover') {\n touchUnpauseTimeout.set(function () {\n setPaused(false);\n }, interval || undefined);\n }\n\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n }, [touch, pause, prev, next, touchUnpauseTimeout, interval, onTouchEnd]);\n var shouldPlay = interval != null && !paused && !isSliding;\n var intervalHandleRef = useRef();\n useEffect(function () {\n var _ref, _activeChildIntervalR;\n\n if (!shouldPlay) {\n return undefined;\n }\n\n intervalHandleRef.current = window.setInterval(document.visibilityState ? nextWhenVisible : next, (_ref = (_activeChildIntervalR = activeChildIntervalRef.current) != null ? _activeChildIntervalR : interval) != null ? _ref : undefined);\n return function () {\n if (intervalHandleRef.current !== null) {\n clearInterval(intervalHandleRef.current);\n }\n };\n }, [shouldPlay, next, activeChildIntervalRef, interval, nextWhenVisible]);\n var indicatorOnClicks = useMemo(function () {\n return indicators && Array.from({\n length: numChildren\n }, function (_, index) {\n return function (event) {\n if (onSelect) {\n onSelect(index, event);\n }\n };\n });\n }, [indicators, numChildren, onSelect]);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: elementRef\n }, props, {\n onKeyDown: handleKeyDown,\n onMouseOver: handleMouseOver,\n onMouseOut: handleMouseOut,\n onTouchStart: handleTouchStart,\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n className: classNames(className, prefix, slide && 'slide', fade && prefix + \"-fade\")\n }), indicators && /*#__PURE__*/React.createElement(\"ol\", {\n className: prefix + \"-indicators\"\n }, map(children, function (_child, index) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n className: index === renderedActiveIndex ? 'active' : undefined,\n onClick: indicatorOnClicks ? indicatorOnClicks[index] : undefined\n });\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: prefix + \"-inner\"\n }, map(children, function (child, index) {\n var isActive = index === renderedActiveIndex;\n return slide ? /*#__PURE__*/React.createElement(Transition, {\n in: isActive,\n onEnter: isActive ? handleEnter : undefined,\n onEntered: isActive ? handleEntered : undefined,\n addEndListener: transitionEndListener\n }, function (status) {\n return /*#__PURE__*/React.cloneElement(child, {\n className: classNames(child.props.className, isActive && status !== 'entered' && orderClassName, (status === 'entered' || status === 'exiting') && 'active', (status === 'entering' || status === 'exiting') && directionalClassName)\n });\n }) : /*#__PURE__*/React.cloneElement(child, {\n className: classNames(child.props.className, isActive && 'active')\n });\n })), controls && /*#__PURE__*/React.createElement(React.Fragment, null, (wrap || activeIndex !== 0) && /*#__PURE__*/React.createElement(SafeAnchor, {\n className: prefix + \"-control-prev\",\n onClick: prev\n }, prevIcon, prevLabel && /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only\"\n }, prevLabel)), (wrap || activeIndex !== numChildren - 1) && /*#__PURE__*/React.createElement(SafeAnchor, {\n className: prefix + \"-control-next\",\n onClick: next\n }, nextIcon, nextLabel && /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only\"\n }, nextLabel))));\n}\n\nvar Carousel = /*#__PURE__*/React.forwardRef(CarouselFunc);\nCarousel.displayName = 'Carousel';\nCarousel.propTypes = propTypes;\nCarousel.defaultProps = defaultProps;\nCarousel.Caption = CarouselCaption;\nCarousel.Item = CarouselItem;\nexport default Carousel;","import React from 'react';\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\n\nfunction map(children, func) {\n var index = 0;\n return React.Children.map(children, function (child) {\n return /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child;\n });\n}\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\n\n\nfunction forEach(children, func) {\n var index = 0;\n React.Children.forEach(children, function (child) {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\nexport { map, forEach };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"as\", \"disabled\", \"onKeyDown\"];\nimport React from 'react';\nimport createChainedFunction from './createChainedFunction';\n\nfunction isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * There are situations due to browser quirks or Bootstrap CSS where\n * an anchor tag is needed, when semantically a button tag is the\n * better choice. SafeAnchor ensures that when an anchor is used like a\n * button its accessible. It also emulates input `disabled` behavior for\n * links, which is usually desirable for Buttons, NavItems, DropdownItems, etc.\n */\n\n\nvar SafeAnchor = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'a' : _ref$as,\n disabled = _ref.disabled,\n onKeyDown = _ref.onKeyDown,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var handleClick = function handleClick(event) {\n var href = props.href,\n onClick = props.onClick;\n\n if (disabled || isTrivialHref(href)) {\n event.preventDefault();\n }\n\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n var handleKeyDown = function handleKeyDown(event) {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n\n if (isTrivialHref(props.href)) {\n props.role = props.role || 'button'; // we want to make sure there is a href attribute on the node\n // otherwise, the cursor incorrectly styled (except with role='button')\n\n props.href = props.href || '#';\n }\n\n if (disabled) {\n props.tabIndex = -1;\n props['aria-disabled'] = true;\n }\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n onClick: handleClick,\n onKeyDown: createChainedFunction(handleKeyDown, onKeyDown)\n }));\n});\nSafeAnchor.displayName = 'SafeAnchor';\nexport default SafeAnchor;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useContext, useMemo } from 'react';\nvar ThemeContext = /*#__PURE__*/React.createContext({});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\n\nfunction ThemeProvider(_ref) {\n var prefixes = _ref.prefixes,\n children = _ref.children;\n var copiedPrefixes = useMemo(function () {\n return _extends({}, prefixes);\n }, [prefixes]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: copiedPrefixes\n }, children);\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var prefixes = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n var Wrapped = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var props = _extends({}, _ref2);\n\n props[forwardRefAs] = ref;\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n bsPrefix: bsPrefix\n }));\n });\n Wrapped.displayName = \"Bootstrap(\" + (Component.displayName || Component.name) + \")\";\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.filter(function (f) {\n return f != null;\n }).reduce(function (acc, f) {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n\n if (acc === null) return f;\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n } // @ts-ignore\n\n\n acc.apply(this, args); // @ts-ignore\n\n f.apply(this, args);\n };\n }, null);\n}\n\nexport default createChainedFunction;","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"bsPrefix\", \"as\"];\nimport classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\n\nvar pascalCase = function pascalCase(str) {\n return str[0].toUpperCase() + camelize(str).slice(1);\n}; // TODO: emstricten & fix the typing here! `createWithBsPrefix...`\n\n\nexport default function createWithBsPrefix(prefix, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? pascalCase(prefix) : _ref$displayName,\n Component = _ref.Component,\n defaultProps = _ref.defaultProps;\n\n var BsComponent = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var className = _ref2.className,\n bsPrefix = _ref2.bsPrefix,\n _ref2$as = _ref2.as,\n Tag = _ref2$as === void 0 ? Component || 'div' : _ref2$as,\n props = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: ref,\n className: classNames(className, resolvedPrefix)\n }, props));\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\n\nfunction parseDuration(node, property) {\n var str = css(node, property) || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nexport default function transitionEndListener(element, handler) {\n var duration = parseDuration(element, 'transitionDuration');\n var delay = parseDuration(element, 'transitionDelay');\n var remove = transitionEnd(element, function (e) {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","// reading a dimension prop will cause the browser to recalculate,\n// which will let our animations work\nexport default function triggerBrowserReflow(node) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n node.offsetHeight;\n}","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function 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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","'use strict';\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nfunction astToReact(node, options) {\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var renderer = options.renderers[node.type]; // Nodes created by plugins do not have positional info, in which case we set\n // an object that matches the positon interface.\n\n if (!node.position) {\n node.position = {\n start: {\n line: null,\n column: null,\n offset: null\n },\n end: {\n line: null,\n column: null,\n offset: null\n }\n };\n }\n\n var pos = node.position.start;\n var key = [node.type, pos.line, pos.column, index].join('-');\n\n if (!ReactIs.isValidElementType(renderer)) {\n throw new Error(\"Renderer for type `\".concat(node.type, \"` not defined or is not renderable\"));\n }\n\n var nodeProps = getNodeProps(node, key, options, renderer, parent, index);\n return React.createElement(renderer, nodeProps, nodeProps.children || resolveChildren() || undefined);\n\n function resolveChildren() {\n return node.children && node.children.map(function (childNode, i) {\n return astToReact(childNode, options, {\n node: node,\n props: nodeProps\n }, i);\n });\n }\n} // eslint-disable-next-line max-params, complexity\n\n\nfunction getNodeProps(node, key, opts, renderer, parent, index) {\n var props = {\n key: key\n };\n var isSimpleRenderer = typeof renderer === 'string' || renderer === React.Fragment; // `sourcePos` is true if the user wants source information (line/column info from markdown source)\n\n if (opts.sourcePos && node.position) {\n props['data-sourcepos'] = flattenPosition(node.position);\n }\n\n if (opts.rawSourcePos && !isSimpleRenderer) {\n props.sourcePosition = node.position;\n } // If `includeNodeIndex` is true, pass node index info to all non-tag renderers\n\n\n if (opts.includeNodeIndex && parent.node && parent.node.children && !isSimpleRenderer) {\n props.index = parent.node.children.indexOf(node);\n props.parentChildCount = parent.node.children.length;\n }\n\n var ref = node.identifier !== null && node.identifier !== undefined ?\n /* istanbul ignore next - plugins could inject an undefined reference. */\n opts.definitions[node.identifier.toUpperCase()] || {} : null;\n\n switch (node.type) {\n case 'root':\n assignDefined(props, {\n className: opts.className\n });\n break;\n\n case 'text':\n props.nodeKey = key;\n props.children = node.value;\n break;\n\n case 'heading':\n props.level = node.depth;\n break;\n\n case 'list':\n props.start = node.start;\n props.ordered = node.ordered;\n props.spread = node.spread;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.spread = node.spread;\n props.ordered = node.ordered;\n props.index = node.index;\n props.children = getListItemChildren(node, parent).map(function (childNode, i) {\n return astToReact(childNode, opts, {\n node: node,\n props: props\n }, i);\n });\n break;\n\n case 'definition':\n assignDefined(props, {\n identifier: node.identifier,\n title: node.title,\n url: node.url\n });\n break;\n\n case 'code':\n assignDefined(props, {\n language: node.lang && node.lang.split(/\\s/, 1)[0]\n });\n break;\n\n case 'inlineCode':\n props.children = node.value;\n props.inline = true;\n break;\n\n case 'link':\n assignDefined(props, {\n title: node.title || undefined,\n target: typeof opts.linkTarget === 'function' ? opts.linkTarget(node.url, node.children, node.title) : opts.linkTarget,\n href: opts.transformLinkUri ? opts.transformLinkUri(node.url, node.children, node.title) : node.url\n });\n break;\n\n case 'image':\n assignDefined(props, {\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url,\n alt: node.alt || '',\n title: node.title || undefined\n });\n break;\n\n case 'linkReference':\n assignDefined(props, xtend(ref, {\n href: opts.transformLinkUri ? opts.transformLinkUri(ref.href) : ref.href\n }));\n break;\n\n case 'imageReference':\n assignDefined(props, {\n src: opts.transformImageUri && ref.href ? opts.transformImageUri(ref.href, node.children, ref.title, node.alt) : ref.href,\n alt: node.alt || '',\n title: ref.title || undefined\n });\n break;\n\n case 'table':\n case 'tableHead':\n case 'tableBody':\n props.columnAlignment = node.align;\n break;\n\n case 'tableRow':\n props.isHeader = parent.node.type === 'tableHead';\n props.columnAlignment = parent.props.columnAlignment;\n break;\n\n case 'tableCell':\n assignDefined(props, {\n isHeader: parent.props.isHeader,\n align: parent.props.columnAlignment[index]\n });\n break;\n\n case 'virtualHtml':\n props.tag = node.tag;\n break;\n\n case 'html':\n // @todo find a better way than this\n props.isBlock = node.position.start.line !== node.position.end.line;\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n break;\n\n case 'parsedHtml':\n {\n var parsedChildren;\n\n if (node.children) {\n parsedChildren = node.children.map(function (child, i) {\n return astToReact(child, opts, {\n node: node,\n props: props\n }, i);\n });\n }\n\n props.allowDangerousHtml = opts.allowDangerousHtml;\n props.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = node.element ? mergeNodeChildren(node, parsedChildren) : null;\n break;\n }\n\n default:\n assignDefined(props, xtend(node, {\n type: undefined,\n position: undefined,\n children: undefined\n }));\n }\n\n if (!isSimpleRenderer && node.value) {\n props.value = node.value;\n }\n\n if (!isSimpleRenderer) {\n props.node = node;\n }\n\n return props;\n}\n\nfunction assignDefined(target, attrs) {\n for (var key in attrs) {\n if (typeof attrs[key] !== 'undefined') {\n target[key] = attrs[key];\n }\n }\n}\n\nfunction mergeNodeChildren(node, parsedChildren) {\n var el = node.element;\n\n if (Array.isArray(el)) {\n /* istanbul ignore next - `div` fallback for old React. */\n var Fragment = React.Fragment || 'div';\n return React.createElement(Fragment, null, el);\n }\n\n if (el.props.children || parsedChildren) {\n var children = React.Children.toArray(el.props.children).concat(parsedChildren);\n return React.cloneElement(el, null, children);\n }\n\n return React.cloneElement(el, null);\n}\n\nfunction flattenPosition(pos) {\n return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');\n}\n\nfunction getListItemChildren(node, parent) {\n /* istanbul ignore next - list items are always in a list, but best to be sure. */\n var loose = parent && parent.node ? listLoose(parent.node) : listItemLoose(node);\n return loose ? node.children : unwrapParagraphs(node);\n}\n\nfunction unwrapParagraphs(node) {\n return node.children.reduce(function (array, child) {\n return array.concat(child.type === 'paragraph' ? child.children : [child]);\n }, []);\n}\n\nfunction listLoose(node) {\n var children = node.children;\n var loose = node.spread;\n var index = -1;\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index]);\n }\n\n return loose;\n}\n\nfunction listItemLoose(node) {\n var spread = node.spread;\n /* istanbul ignore next - spread is present from remark-parse, but maybe plugins don’t set it. */\n\n return spread === undefined || spread === null ? node.children.length > 1 : spread;\n}\n\nmodule.exports = astToReact;","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function getDefinitions(tree) {\n var definitions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n visit(tree, 'definition', function (node) {\n var identifier = node.identifier.toUpperCase();\n if (identifier in definitions) return;\n definitions[identifier] = {\n href: node.url,\n title: node.title\n };\n });\n return definitions;\n};","\"use strict\";\n\nvar visit = require('unist-util-visit');\n\nvar splice = [].splice;\n\nexports.ofType = function (types, mode) {\n return ifNotMatch(allow, mode);\n\n function allow(node, index, parent) {\n return !types.includes(node.type);\n }\n};\n\nexports.ifNotMatch = ifNotMatch;\n\nfunction ifNotMatch(allow, mode) {\n return transform;\n\n function transform(tree) {\n visit(tree, filter);\n return tree;\n } // eslint-disable-next-line consistent-return\n\n\n function filter(node, index, parent) {\n if (parent && !allow(node, index, parent)) {\n var parameters = [index, 1];\n\n if (mode === 'unwrap' && node.children) {\n parameters = parameters.concat(node.children);\n }\n\n splice.apply(parent.children, parameters);\n return index;\n }\n }\n}","\"use strict\";\n/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say foo, but not foo\n * For proper HTML support, you'll want a different plugin\n **/\n\nvar visit = require('unist-util-visit');\n\nvar type = 'virtualHtml';\nvar selfClosingRe = /^<(area|base|br|col|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)\\s*\\/?>$/i;\nvar simpleTagRe = /^<(\\/?)([a-z]+)\\s*>$/;\n\nmodule.exports = function (tree) {\n var open;\n var currentParent;\n visit(tree, 'html', function (node, index, parent) {\n if (currentParent !== parent) {\n open = [];\n currentParent = parent;\n }\n\n var selfClosing = getSelfClosing(node);\n\n if (selfClosing) {\n parent.children.splice(index, 1, {\n type: type,\n tag: selfClosing,\n position: node.position\n });\n return true;\n }\n\n var current = getSimpleTag(node, parent);\n\n if (!current) {\n return true;\n }\n\n var matching = findAndPull(open, current.tag);\n\n if (matching) {\n parent.children.splice(index, 0, virtual(current, matching, parent));\n } else if (!current.opening) {\n open.push(current);\n }\n\n return true;\n }, true // Iterate in reverse\n );\n return tree;\n};\n\nfunction findAndPull(open, matchingTag) {\n var i = open.length;\n\n while (i--) {\n if (open[i].tag === matchingTag) {\n return open.splice(i, 1)[0];\n }\n }\n\n return false;\n}\n\nfunction getSimpleTag(node, parent) {\n var match = node.value.match(simpleTagRe);\n return match ? {\n tag: match[2],\n opening: !match[1],\n node: node\n } : false;\n}\n\nfunction getSelfClosing(node) {\n var match = node.value.match(selfClosingRe);\n return match ? match[1] : false;\n}\n\nfunction virtual(fromNode, toNode, parent) {\n var fromIndex = parent.children.indexOf(fromNode.node);\n var toIndex = parent.children.indexOf(toNode.node);\n var extracted = parent.children.splice(fromIndex, toIndex - fromIndex + 1);\n var children = extracted.slice(1, -1);\n return {\n type: type,\n children: children,\n tag: fromNode.tag,\n position: {\n start: fromNode.node.position.start,\n end: toNode.node.position.end,\n indent: []\n }\n };\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar unified = require('unified');\n\nvar parse = require('remark-parse');\n\nvar PropTypes = require('prop-types');\n\nvar addListMetadata = require('mdast-add-list-metadata');\n\nvar naiveHtml = require('./plugins/naive-html');\n\nvar disallowNode = require('./plugins/disallow-node');\n\nvar astToReact = require('./ast-to-react');\n\nvar wrapTableRows = require('./wrap-table-rows');\n\nvar getDefinitions = require('./get-definitions');\n\nvar uriTransformer = require('./uri-transformer');\n\nvar defaultRenderers = require('./renderers');\n\nvar symbols = require('./symbols');\n\nvar allTypes = Object.keys(defaultRenderers);\n\nvar ReactMarkdown = function ReactMarkdown(props) {\n // To do in next major: remove `source`.\n var src = props.source || props.children || '';\n\n if (props.allowedTypes && props.disallowedTypes) {\n throw new Error('Only one of `allowedTypes` and `disallowedTypes` should be defined');\n }\n\n var renderers = xtend(defaultRenderers, props.renderers);\n var processor = unified().use(parse).use(props.plugins || []); // eslint-disable-next-line no-sync\n\n var tree = processor.runSync(processor.parse(src));\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(tree)\n });\n determineAstToReactTransforms(props).forEach(function (transform) {\n tree = transform(tree, renderProps);\n });\n return tree;\n};\n\nfunction determineAstToReactTransforms(props) {\n var transforms = [wrapTableRows, addListMetadata()];\n var disallowedTypes = props.disallowedTypes;\n\n if (props.allowedTypes) {\n disallowedTypes = allTypes.filter(function (type) {\n return type !== 'root' && props.allowedTypes.indexOf(type) === -1;\n });\n }\n\n var removalMethod = props.unwrapDisallowed ? 'unwrap' : 'remove';\n\n if (disallowedTypes && disallowedTypes.length > 0) {\n transforms.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n transforms.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n } // To do in next major: remove `escapeHtml`.\n\n\n var renderHtml = (props.allowDangerousHtml || props.escapeHtml === false) && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (transform) {\n return transform.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n transforms.push(naiveHtml);\n }\n\n if (props.astPlugins) {\n transforms = transforms.concat(props.astPlugins);\n } // Add the final transform to turn everything into React.\n\n\n transforms.push(astToReact);\n return transforms;\n}\n\nReactMarkdown.defaultProps = {\n transformLinkUri: uriTransformer\n};\nReactMarkdown.propTypes = {\n className: PropTypes.string,\n source: PropTypes.string,\n children: PropTypes.string,\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n escapeHtml: PropTypes.bool,\n allowDangerousHtml: PropTypes.bool,\n skipHtml: PropTypes.bool,\n allowNode: PropTypes.func,\n allowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n disallowedTypes: PropTypes.arrayOf(PropTypes.oneOf(allTypes)),\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n astPlugins: PropTypes.arrayOf(PropTypes.func),\n unwrapDisallowed: PropTypes.bool,\n renderers: PropTypes.object,\n plugins: PropTypes.array\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nvar xtend = require('xtend');\n\nvar React = require('react');\n/* istanbul ignore next - Don’t crash on old React. */\n\n\nvar supportsStringRender = parseInt((React.version || '16').slice(0, 2), 10) >= 16;\nvar createElement = React.createElement;\nmodule.exports = {\n break: 'br',\n paragraph: 'p',\n emphasis: 'em',\n strong: 'strong',\n thematicBreak: 'hr',\n blockquote: 'blockquote',\n delete: 'del',\n link: 'a',\n image: 'img',\n linkReference: 'a',\n imageReference: 'img',\n table: SimpleRenderer.bind(null, 'table'),\n tableHead: SimpleRenderer.bind(null, 'thead'),\n tableBody: SimpleRenderer.bind(null, 'tbody'),\n tableRow: SimpleRenderer.bind(null, 'tr'),\n tableCell: TableCell,\n root: Root,\n text: TextRenderer,\n list: List,\n listItem: ListItem,\n definition: NullRenderer,\n heading: Heading,\n inlineCode: InlineCode,\n code: CodeBlock,\n html: Html,\n virtualHtml: VirtualHtml,\n parsedHtml: ParsedHtml\n};\n\nfunction TextRenderer(props) {\n /* istanbul ignore next - a text node w/o a value could be injected by plugins */\n var children = props.children || '';\n /* istanbul ignore next - `span` is a fallback for old React. */\n\n return supportsStringRender ? children : createElement('span', null, children);\n}\n\nfunction Root(props) {\n var className = props.className;\n var root = !className && React.Fragment || 'div';\n return createElement(root, className ? {\n className: className\n } : null, props.children);\n}\n\nfunction SimpleRenderer(tag, props) {\n return createElement(tag, getCoreProps(props), props.children);\n}\n\nfunction TableCell(props) {\n var style = props.align ? {\n textAlign: props.align\n } : undefined;\n var coreProps = getCoreProps(props);\n return createElement(props.isHeader ? 'th' : 'td', style ? xtend({\n style: style\n }, coreProps) : coreProps, props.children);\n}\n\nfunction Heading(props) {\n return createElement(\"h\".concat(props.level), getCoreProps(props), props.children);\n}\n\nfunction List(props) {\n var attrs = getCoreProps(props);\n\n if (props.start !== null && props.start !== 1 && props.start !== undefined) {\n attrs.start = props.start.toString();\n }\n\n return createElement(props.ordered ? 'ol' : 'ul', attrs, props.children);\n}\n\nfunction ListItem(props) {\n var checkbox = null;\n\n if (props.checked !== null && props.checked !== undefined) {\n var checked = props.checked;\n checkbox = createElement('input', {\n type: 'checkbox',\n checked: checked,\n readOnly: true\n });\n }\n\n return createElement('li', getCoreProps(props), checkbox, props.children);\n}\n\nfunction CodeBlock(props) {\n var className = props.language && \"language-\".concat(props.language);\n var code = createElement('code', className ? {\n className: className\n } : null, props.value);\n return createElement('pre', getCoreProps(props), code);\n}\n\nfunction InlineCode(props) {\n return createElement('code', getCoreProps(props), props.children);\n}\n\nfunction Html(props) {\n if (props.skipHtml) {\n return null;\n }\n\n var dangerous = props.allowDangerousHtml || props.escapeHtml === false;\n var tag = props.isBlock ? 'div' : 'span';\n\n if (!dangerous) {\n /* istanbul ignore next - `tag` is a fallback for old React. */\n return createElement(React.Fragment || tag, null, props.value);\n }\n\n var nodeProps = {\n dangerouslySetInnerHTML: {\n __html: props.value\n }\n };\n return createElement(tag, nodeProps);\n}\n\nfunction ParsedHtml(props) {\n /* To do: `React.cloneElement` is slow, is it really needed? */\n return props['data-sourcepos'] ? React.cloneElement(props.element, {\n 'data-sourcepos': props['data-sourcepos']\n }) : props.element;\n}\n\nfunction VirtualHtml(props) {\n return createElement(props.tag, getCoreProps(props), props.children);\n}\n\nfunction NullRenderer() {\n return null;\n}\n\nfunction getCoreProps(props) {\n var source = props['data-sourcepos'];\n /* istanbul ignore next - nodes from plugins w/o position */\n\n return source ? {\n 'data-sourcepos': source\n } : {};\n}","\"use strict\";\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\n/* istanbul ignore next - Fallback for `Symbol`. */\n\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","\"use strict\";\n\nvar protocols = ['http', 'https', 'mailto', 'tel'];\n\nmodule.exports = function uriTransformer(uri) {\n var url = (uri || '').trim();\n var first = url.charAt(0);\n\n if (first === '#' || first === '/') {\n return url;\n }\n\n var colon = url.indexOf(':');\n\n if (colon === -1) {\n return url;\n }\n\n var length = protocols.length;\n var index = -1;\n\n while (++index < length) {\n var protocol = protocols[index];\n\n if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {\n return url;\n }\n }\n\n index = url.indexOf('?');\n\n if (index !== -1 && colon > index) {\n return url;\n }\n\n index = url.indexOf('#');\n\n if (index !== -1 && colon > index) {\n return url;\n } // eslint-disable-next-line no-script-url\n\n\n return 'javascript:void(0)';\n};","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = function (node) {\n visit(node, 'table', wrap);\n return node;\n};\n\nfunction wrap(table) {\n var children = table.children;\n table.children = [{\n type: 'tableHead',\n align: table.align,\n children: [children[0]],\n position: children[0].position\n }];\n\n if (children.length > 1) {\n table.children.push({\n type: 'tableBody',\n align: table.align,\n children: children.slice(1),\n position: {\n start: children[1].position.start,\n end: children[children.length - 1].position.end\n }\n });\n }\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\n\n// Name the function so it is clearer in the documentation\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","'use strict';\n\nmodule.exports = parse;\n\nvar fromMarkdown = require('mdast-util-from-markdown');\n\nfunction parse(options) {\n var self = this;\n this.Parser = parse;\n\n function parse(doc) {\n return fromMarkdown(doc, Object.assign({}, self.data('settings'), options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n }));\n }\n}","'use strict';\n\nvar wrap = require('./wrap.js');\n\nmodule.exports = trough;\ntrough.wrap = wrap;\nvar slice = [].slice; // Create new middleware.\n\nfunction trough() {\n var fns = [];\n var middleware = {};\n middleware.run = run;\n middleware.use = use;\n return middleware; // Run `fns`. Last argument must be a completion handler.\n\n function run() {\n var index = -1;\n var input = slice.call(arguments, 0, -1);\n var done = arguments[arguments.length - 1];\n\n if (typeof done !== 'function') {\n throw new Error('Expected function as last argument, not ' + done);\n }\n\n next.apply(null, [null].concat(input)); // Run the next `fn`, if any.\n\n function next(err) {\n var fn = fns[++index];\n var params = slice.call(arguments, 0);\n var values = params.slice(1);\n var length = input.length;\n var pos = -1;\n\n if (err) {\n done(err);\n return;\n } // Copy non-nully input into values.\n\n\n while (++pos < length) {\n if (values[pos] === null || values[pos] === undefined) {\n values[pos] = input[pos];\n }\n }\n\n input = values; // Next or done.\n\n if (fn) {\n wrap(fn, next).apply(null, input);\n } else {\n done.apply(null, [null].concat(input));\n }\n }\n } // Add `fn` to the list.\n\n\n function use(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Expected `fn` to be a function, not ' + fn);\n }\n\n fns.push(fn);\n return middleware;\n }\n}","'use strict';\n\nvar slice = [].slice;\nmodule.exports = wrap; // Wrap `fn`.\n// Can be sync or async; return a promise, receive a completion handler, return\n// new values and errors.\n\nfunction wrap(fn, callback) {\n var invoked;\n return wrapped;\n\n function wrapped() {\n var params = slice.call(arguments, 0);\n var callback = fn.length > params.length;\n var result;\n\n if (callback) {\n params.push(done);\n }\n\n try {\n result = fn.apply(null, params);\n } catch (error) {\n // Well, this is quite the pickle.\n // `fn` received a callback and invoked it (thus continuing the pipeline),\n // but later also threw an error.\n // We’re not about to restart the pipeline again, so the only thing left\n // to do is to throw the thing instead.\n if (callback && invoked) {\n throw error;\n }\n\n return done(error);\n }\n\n if (!callback) {\n if (result && typeof result.then === 'function') {\n result.then(then, done);\n } else if (result instanceof Error) {\n done(result);\n } else {\n then(result);\n }\n }\n } // Invoke `next`, only once.\n\n\n function done() {\n if (!invoked) {\n invoked = true;\n callback.apply(null, arguments);\n }\n } // Invoke `done` with one value.\n // Tracks if an error is passed, too.\n\n\n function then(value) {\n done(null, value);\n }\n}","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n}\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\n}","'use strict';\n\nvar bail = require('bail');\n\nvar buffer = require('is-buffer');\n\nvar extend = require('extend');\n\nvar plain = require('is-plain-obj');\n\nvar trough = require('trough');\n\nvar vfile = require('vfile'); // Expose a frozen processor.\n\n\nmodule.exports = unified().freeze();\nvar slice = [].slice;\nvar own = {}.hasOwnProperty; // Process pipeline.\n\nvar pipeline = trough().use(pipelineParse).use(pipelineRun).use(pipelineStringify);\n\nfunction pipelineParse(p, ctx) {\n ctx.tree = p.parse(ctx.file);\n}\n\nfunction pipelineRun(p, ctx, next) {\n p.run(ctx.tree, ctx.file, done);\n\n function done(error, tree, file) {\n if (error) {\n next(error);\n } else {\n ctx.tree = tree;\n ctx.file = file;\n next();\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n var result = p.stringify(ctx.tree, ctx.file);\n\n if (result === undefined || result === null) {// Empty.\n } else if (typeof result === 'string' || buffer(result)) {\n ctx.file.contents = result;\n } else {\n ctx.file.result = result;\n }\n} // Function to create the first processor.\n\n\nfunction unified() {\n var attachers = [];\n var transformers = trough();\n var namespace = {};\n var freezeIndex = -1;\n var frozen; // Data management.\n\n processor.data = data; // Lock.\n\n processor.freeze = freeze; // Plugins.\n\n processor.attachers = attachers;\n processor.use = use; // API.\n\n processor.parse = parse;\n processor.stringify = stringify;\n processor.run = run;\n processor.runSync = runSync;\n processor.process = process;\n processor.processSync = processSync; // Expose.\n\n return processor; // Create a new processor based on the processor in the current scope.\n\n function processor() {\n var destination = unified();\n var index = -1;\n\n while (++index < attachers.length) {\n destination.use.apply(null, attachers[index]);\n }\n\n destination.data(extend(true, {}, namespace));\n return destination;\n } // Freeze: used to signal a processor that has finished configuration.\n //\n // For example, take unified itself: it’s frozen.\n // Plugins should not be added to it.\n // Rather, it should be extended, by invoking it, before modifying it.\n //\n // In essence, always invoke this when exporting a processor.\n\n\n function freeze() {\n var values;\n var transformer;\n\n if (frozen) {\n return processor;\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex];\n\n if (values[1] === false) {\n continue;\n }\n\n if (values[1] === true) {\n values[1] = undefined;\n }\n\n transformer = values[0].apply(processor, values.slice(1));\n\n if (typeof transformer === 'function') {\n transformers.use(transformer);\n }\n }\n\n frozen = true;\n freezeIndex = Infinity;\n return processor;\n } // Data management.\n // Getter / setter for processor-specific informtion.\n\n\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen);\n namespace[key] = value;\n return processor;\n } // Get `key`.\n\n\n return own.call(namespace, key) && namespace[key] || null;\n } // Set space.\n\n\n if (key) {\n assertUnfrozen('data', frozen);\n namespace = key;\n return processor;\n } // Get space.\n\n\n return namespace;\n } // Plugin management.\n //\n // Pass it:\n // * an attacher and options,\n // * a preset,\n // * a list of presets, attachers, and arguments (list of attachers and\n // options).\n\n\n function use(value) {\n var settings;\n assertUnfrozen('use', frozen);\n\n if (value === null || value === undefined) {// Empty.\n } else if (typeof value === 'function') {\n addPlugin.apply(null, arguments);\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addList(value);\n } else {\n addPreset(value);\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`');\n }\n\n if (settings) {\n namespace.settings = extend(namespace.settings || {}, settings);\n }\n\n return processor;\n\n function addPreset(result) {\n addList(result.plugins);\n\n if (result.settings) {\n settings = extend(settings || {}, result.settings);\n }\n }\n\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value);\n } else if (typeof value === 'object') {\n if ('length' in value) {\n addPlugin.apply(null, value);\n } else {\n addPreset(value);\n }\n } else {\n throw new Error('Expected usable value, not `' + value + '`');\n }\n }\n\n function addList(plugins) {\n var index = -1;\n\n if (plugins === null || plugins === undefined) {// Empty.\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n while (++index < plugins.length) {\n add(plugins[index]);\n }\n } else {\n throw new Error('Expected a list of plugins, not `' + plugins + '`');\n }\n }\n\n function addPlugin(plugin, value) {\n var entry = find(plugin);\n\n if (entry) {\n if (plain(entry[1]) && plain(value)) {\n value = extend(true, entry[1], value);\n }\n\n entry[1] = value;\n } else {\n attachers.push(slice.call(arguments));\n }\n }\n }\n\n function find(plugin) {\n var index = -1;\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n return attachers[index];\n }\n }\n } // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor.\n\n\n function parse(doc) {\n var file = vfile(doc);\n var Parser;\n freeze();\n Parser = processor.Parser;\n assertParser('parse', Parser);\n\n if (newable(Parser, 'parse')) {\n return new Parser(String(file), file).parse();\n }\n\n return Parser(String(file), file); // eslint-disable-line new-cap\n } // Run transforms on a unist node representation of a file (in string or\n // vfile representation), async.\n\n\n function run(node, file, cb) {\n assertNode(node);\n freeze();\n\n if (!cb && typeof file === 'function') {\n cb = file;\n file = null;\n }\n\n if (!cb) {\n return new Promise(executor);\n }\n\n executor(null, cb);\n\n function executor(resolve, reject) {\n transformers.run(node, vfile(file), done);\n\n function done(error, tree, file) {\n tree = tree || node;\n\n if (error) {\n reject(error);\n } else if (resolve) {\n resolve(tree);\n } else {\n cb(null, tree, file);\n }\n }\n }\n } // Run transforms on a unist node representation of a file (in string or\n // vfile representation), sync.\n\n\n function runSync(node, file) {\n var result;\n var complete;\n run(node, file, done);\n assertDone('runSync', 'run', complete);\n return result;\n\n function done(error, tree) {\n complete = true;\n result = tree;\n bail(error);\n }\n } // Stringify a unist node representation of a file (in string or vfile\n // representation) into a string using the `Compiler` on the processor.\n\n\n function stringify(node, doc) {\n var file = vfile(doc);\n var Compiler;\n freeze();\n Compiler = processor.Compiler;\n assertCompiler('stringify', Compiler);\n assertNode(node);\n\n if (newable(Compiler, 'compile')) {\n return new Compiler(node, file).compile();\n }\n\n return Compiler(node, file); // eslint-disable-line new-cap\n } // Parse a file (in string or vfile representation) into a unist node using\n // the `Parser` on the processor, then run transforms on that node, and\n // compile the resulting node using the `Compiler` on the processor, and\n // store that result on the vfile.\n\n\n function process(doc, cb) {\n freeze();\n assertParser('process', processor.Parser);\n assertCompiler('process', processor.Compiler);\n\n if (!cb) {\n return new Promise(executor);\n }\n\n executor(null, cb);\n\n function executor(resolve, reject) {\n var file = vfile(doc);\n pipeline.run(processor, {\n file: file\n }, done);\n\n function done(error) {\n if (error) {\n reject(error);\n } else if (resolve) {\n resolve(file);\n } else {\n cb(null, file);\n }\n }\n }\n } // Process the given document (in string or vfile representation), sync.\n\n\n function processSync(doc) {\n var file;\n var complete;\n freeze();\n assertParser('processSync', processor.Parser);\n assertCompiler('processSync', processor.Compiler);\n file = vfile(doc);\n process(file, done);\n assertDone('processSync', 'process', complete);\n return file;\n\n function done(error) {\n complete = true;\n bail(error);\n }\n }\n} // Check if `value` is a constructor.\n\n\nfunction newable(value, name) {\n return typeof value === 'function' && value.prototype && ( // A function with keys in its prototype is probably a constructor.\n // Classes’ prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n keys(value.prototype) || name in value.prototype);\n} // Check if `value` is an object with keys.\n\n\nfunction keys(value) {\n var key;\n\n for (key in value) {\n return true;\n }\n\n return false;\n} // Assert a parser is available.\n\n\nfunction assertParser(name, Parser) {\n if (typeof Parser !== 'function') {\n throw new Error('Cannot `' + name + '` without `Parser`');\n }\n} // Assert a compiler is available.\n\n\nfunction assertCompiler(name, Compiler) {\n if (typeof Compiler !== 'function') {\n throw new Error('Cannot `' + name + '` without `Compiler`');\n }\n} // Assert the processor is not frozen.\n\n\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error('Cannot invoke `' + name + '` on a frozen processor.\\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.');\n }\n} // Assert `node` is a unist node.\n\n\nfunction assertNode(node) {\n if (!node || typeof node.type !== 'string') {\n throw new Error('Expected node, got `' + node + '`');\n }\n} // Assert that `complete` is `true`.\n\n\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error('`' + name + '` finished async. Use `' + asyncName + '` instead');\n }\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nmodule.exports = function (value) {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n};","'use strict';\n\nmodule.exports = convert;\n\nfunction convert(test) {\n if (test == null) {\n return ok;\n }\n\n if (typeof test === 'string') {\n return typeFactory(test);\n }\n\n if (typeof test === 'object') {\n return 'length' in test ? anyFactory(test) : allFactory(test);\n }\n\n if (typeof test === 'function') {\n return test;\n }\n\n throw new Error('Expected function, string, or object as test');\n} // Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\n\n\nfunction allFactory(test) {\n return all;\n\n function all(node) {\n var key;\n\n for (key in test) {\n if (node[key] !== test[key]) return false;\n }\n\n return true;\n }\n}\n\nfunction anyFactory(tests) {\n var checks = [];\n var index = -1;\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n\n return any;\n\n function any() {\n var index = -1;\n\n while (++index < checks.length) {\n if (checks[index].apply(this, arguments)) {\n return true;\n }\n }\n\n return false;\n }\n} // Utility to convert a string into a function which checks a given node’s type\n// for said string.\n\n\nfunction typeFactory(test) {\n return type;\n\n function type(node) {\n return Boolean(node && node.type === test);\n }\n} // Utility to return true.\n\n\nfunction ok() {\n return true;\n}","'use strict';\n\nvar own = {}.hasOwnProperty;\nmodule.exports = stringify;\n\nfunction stringify(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return '';\n } // Node.\n\n\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position);\n } // Position.\n\n\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value);\n } // Point.\n\n\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value);\n } // ?\n\n\n return '';\n}\n\nfunction point(point) {\n if (!point || typeof point !== 'object') {\n point = {};\n }\n\n return index(point.line) + ':' + index(point.column);\n}\n\nfunction position(pos) {\n if (!pos || typeof pos !== 'object') {\n pos = {};\n }\n\n return point(pos.start) + '-' + point(pos.end);\n}\n\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1;\n}","module.exports = identity;\n\nfunction identity(d) {\n return d;\n}","'use strict';\n\nmodule.exports = visitParents;\n\nvar convert = require('unist-util-is/convert');\n\nvar color = require('./color');\n\nvar CONTINUE = true;\nvar SKIP = 'skip';\nvar EXIT = false;\nvisitParents.CONTINUE = CONTINUE;\nvisitParents.SKIP = SKIP;\nvisitParents.EXIT = EXIT;\n\nfunction visitParents(tree, test, visitor, reverse) {\n var step;\n var is;\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n is = convert(test);\n step = reverse ? -1 : 1;\n factory(tree, null, [])();\n\n function factory(node, index, parents) {\n var value = typeof node === 'object' && node !== null ? node : {};\n var name;\n\n if (typeof value.type === 'string') {\n name = typeof value.tagName === 'string' ? value.tagName : typeof value.name === 'string' ? value.name : undefined;\n visit.displayName = 'node (' + color(value.type + (name ? '<' + name + '>' : '')) + ')';\n }\n\n return visit;\n\n function visit() {\n var grandparents = parents.concat(node);\n var result = [];\n var subresult;\n var offset;\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents));\n\n if (result[0] === EXIT) {\n return result;\n }\n }\n\n if (node.children && result[0] !== SKIP) {\n offset = (reverse ? node.children.length : -1) + step;\n\n while (offset > -1 && offset < node.children.length) {\n subresult = factory(node.children[offset], offset, grandparents)();\n\n if (subresult[0] === EXIT) {\n return subresult;\n }\n\n offset = typeof subresult[1] === 'number' ? subresult[1] : offset + step;\n }\n }\n\n return result;\n }\n }\n}\n\nfunction toResult(value) {\n if (value !== null && typeof value === 'object' && 'length' in value) {\n return value;\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value];\n }\n\n return [value];\n}","'use strict';\n\nmodule.exports = visit;\n\nvar visitParents = require('unist-util-visit-parents');\n\nvar CONTINUE = visitParents.CONTINUE;\nvar SKIP = visitParents.SKIP;\nvar EXIT = visitParents.EXIT;\nvisit.CONTINUE = CONTINUE;\nvisit.SKIP = SKIP;\nvisit.EXIT = EXIT;\n\nfunction visit(tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor;\n visitor = test;\n test = null;\n }\n\n visitParents(tree, test, overload, reverse);\n\n function overload(node, parents) {\n var parent = parents[parents.length - 1];\n var index = parent ? parent.children.indexOf(node) : null;\n return visitor(node, index, parent);\n }\n}","'use strict';\n\nvar stringify = require('unist-util-stringify-position');\n\nmodule.exports = VMessage; // Inherit from `Error#`.\n\nfunction VMessagePrototype() {}\n\nVMessagePrototype.prototype = Error.prototype;\nVMessage.prototype = new VMessagePrototype(); // Message properties.\n\nvar proto = VMessage.prototype;\nproto.file = '';\nproto.name = '';\nproto.reason = '';\nproto.message = '';\nproto.stack = '';\nproto.fatal = null;\nproto.column = null;\nproto.line = null; // Construct a new VMessage.\n//\n// Note: We cannot invoke `Error` on the created context, as that adds readonly\n// `line` and `column` attributes on Safari 9, thus throwing and failing the\n// data.\n\nfunction VMessage(reason, position, origin) {\n var parts;\n var range;\n var location;\n\n if (typeof position === 'string') {\n origin = position;\n position = null;\n }\n\n parts = parseOrigin(origin);\n range = stringify(position) || '1:1';\n location = {\n start: {\n line: null,\n column: null\n },\n end: {\n line: null,\n column: null\n }\n }; // Node.\n\n if (position && position.position) {\n position = position.position;\n }\n\n if (position) {\n // Position.\n if (position.start) {\n location = position;\n position = position.start;\n } else {\n // Point.\n location.start = position;\n }\n }\n\n if (reason.stack) {\n this.stack = reason.stack;\n reason = reason.message;\n }\n\n this.message = reason;\n this.name = range;\n this.reason = reason;\n this.line = position ? position.line : null;\n this.column = position ? position.column : null;\n this.location = location;\n this.source = parts[0];\n this.ruleId = parts[1];\n}\n\nfunction parseOrigin(origin) {\n var result = [null, null];\n var index;\n\n if (typeof origin === 'string') {\n index = origin.indexOf(':');\n\n if (index === -1) {\n result[1] = origin;\n } else {\n result[0] = origin.slice(0, index);\n result[1] = origin.slice(index + 1);\n }\n }\n\n return result;\n}","'use strict';\n\nmodule.exports = require('./lib');","'use strict';\n\nvar p = require('./minpath');\n\nvar proc = require('./minproc');\n\nvar buffer = require('is-buffer');\n\nmodule.exports = VFile;\nvar own = {}.hasOwnProperty; // Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\n\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname'];\nVFile.prototype.toString = toString; // Access full path (`~/index.min.js`).\n\nObject.defineProperty(VFile.prototype, 'path', {\n get: getPath,\n set: setPath\n}); // Access parent path (`~`).\n\nObject.defineProperty(VFile.prototype, 'dirname', {\n get: getDirname,\n set: setDirname\n}); // Access basename (`index.min.js`).\n\nObject.defineProperty(VFile.prototype, 'basename', {\n get: getBasename,\n set: setBasename\n}); // Access extname (`.js`).\n\nObject.defineProperty(VFile.prototype, 'extname', {\n get: getExtname,\n set: setExtname\n}); // Access stem (`index.min`).\n\nObject.defineProperty(VFile.prototype, 'stem', {\n get: getStem,\n set: setStem\n}); // Construct a new file.\n\nfunction VFile(options) {\n var prop;\n var index;\n\n if (!options) {\n options = {};\n } else if (typeof options === 'string' || buffer(options)) {\n options = {\n contents: options\n };\n } else if ('message' in options && 'messages' in options) {\n return options;\n }\n\n if (!(this instanceof VFile)) {\n return new VFile(options);\n }\n\n this.data = {};\n this.messages = [];\n this.history = [];\n this.cwd = proc.cwd(); // Set path related properties in the correct order.\n\n index = -1;\n\n while (++index < order.length) {\n prop = order[index];\n\n if (own.call(options, prop)) {\n this[prop] = options[prop];\n }\n } // Set non-path related properties.\n\n\n for (prop in options) {\n if (order.indexOf(prop) < 0) {\n this[prop] = options[prop];\n }\n }\n}\n\nfunction getPath() {\n return this.history[this.history.length - 1];\n}\n\nfunction setPath(path) {\n assertNonEmpty(path, 'path');\n\n if (this.path !== path) {\n this.history.push(path);\n }\n}\n\nfunction getDirname() {\n return typeof this.path === 'string' ? p.dirname(this.path) : undefined;\n}\n\nfunction setDirname(dirname) {\n assertPath(this.path, 'dirname');\n this.path = p.join(dirname || '', this.basename);\n}\n\nfunction getBasename() {\n return typeof this.path === 'string' ? p.basename(this.path) : undefined;\n}\n\nfunction setBasename(basename) {\n assertNonEmpty(basename, 'basename');\n assertPart(basename, 'basename');\n this.path = p.join(this.dirname || '', basename);\n}\n\nfunction getExtname() {\n return typeof this.path === 'string' ? p.extname(this.path) : undefined;\n}\n\nfunction setExtname(extname) {\n assertPart(extname, 'extname');\n assertPath(this.path, 'extname');\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46\n /* `.` */\n ) {\n throw new Error('`extname` must start with `.`');\n }\n\n if (extname.indexOf('.', 1) > -1) {\n throw new Error('`extname` cannot contain multiple dots');\n }\n }\n\n this.path = p.join(this.dirname, this.stem + (extname || ''));\n}\n\nfunction getStem() {\n return typeof this.path === 'string' ? p.basename(this.path, this.extname) : undefined;\n}\n\nfunction setStem(stem) {\n assertNonEmpty(stem, 'stem');\n assertPart(stem, 'stem');\n this.path = p.join(this.dirname || '', stem + (this.extname || ''));\n} // Get the value of the file.\n\n\nfunction toString(encoding) {\n return (this.contents || '').toString(encoding);\n} // Assert that `part` is not a path (i.e., does not contain `p.sep`).\n\n\nfunction assertPart(part, name) {\n if (part && part.indexOf(p.sep) > -1) {\n throw new Error('`' + name + '` cannot be a path: did not expect `' + p.sep + '`');\n }\n} // Assert that `part` is not empty.\n\n\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty');\n }\n} // Assert `path` exists.\n\n\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too');\n }\n}","'use strict';\n\nvar VMessage = require('vfile-message');\n\nvar VFile = require('./core.js');\n\nmodule.exports = VFile;\nVFile.prototype.message = message;\nVFile.prototype.info = info;\nVFile.prototype.fail = fail; // Create a message with `reason` at `position`.\n// When an error is passed in as `reason`, copies the stack.\n\nfunction message(reason, position, origin) {\n var message = new VMessage(reason, position, origin);\n\n if (this.path) {\n message.name = this.path + ':' + message.name;\n message.file = this.path;\n }\n\n message.fatal = false;\n this.messages.push(message);\n return message;\n} // Fail: creates a vmessage, associates it with the file, and throws it.\n\n\nfunction fail() {\n var message = this.message.apply(this, arguments);\n message.fatal = true;\n throw message;\n} // Info: creates a vmessage, associates it with the file, and marks the fatality\n// as null.\n\n\nfunction info() {\n var message = this.message.apply(this, arguments);\n message.fatal = null;\n return message;\n}","'use strict'; // A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexports.basename = basename;\nexports.dirname = dirname;\nexports.extname = extname;\nexports.join = join;\nexports.sep = '/';\n\nfunction basename(path, ext) {\n var start = 0;\n var end = -1;\n var index;\n var firstNonSlashEnd;\n var seenNonSlash;\n var extIndex;\n\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string');\n }\n\n assertPath(path);\n index = path.length;\n\n if (ext === undefined || !ext.length || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47\n /* `/` */\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1;\n break;\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true;\n end = index + 1;\n }\n }\n\n return end < 0 ? '' : path.slice(start, end);\n }\n\n if (ext === path) {\n return '';\n }\n\n firstNonSlashEnd = -1;\n extIndex = ext.length - 1;\n\n while (index--) {\n if (path.charCodeAt(index) === 47\n /* `/` */\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true;\n firstNonSlashEnd = index + 1;\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd;\n } else if (end < 0) {\n end = path.length;\n }\n\n return path.slice(start, end);\n}\n\nfunction dirname(path) {\n var end;\n var unmatchedSlash;\n var index;\n assertPath(path);\n\n if (!path.length) {\n return '.';\n }\n\n end = -1;\n index = path.length; // Prefix `--` is important to not run on `0`.\n\n while (--index) {\n if (path.charCodeAt(index) === 47\n /* `/` */\n ) {\n if (unmatchedSlash) {\n end = index;\n break;\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true;\n }\n }\n\n return end < 0 ? path.charCodeAt(0) === 47\n /* `/` */\n ? '/' : '.' : end === 1 && path.charCodeAt(0) === 47\n /* `/` */\n ? '//' : path.slice(0, end);\n}\n\nfunction extname(path) {\n var startDot = -1;\n var startPart = 0;\n var end = -1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n\n var preDotState = 0;\n var unmatchedSlash;\n var code;\n var index;\n assertPath(path);\n index = path.length;\n\n while (index--) {\n code = path.charCodeAt(index);\n\n if (code === 47\n /* `/` */\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1;\n break;\n }\n\n continue;\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true;\n end = index + 1;\n }\n\n if (code === 46\n /* `.` */\n ) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index;\n } else if (preDotState !== 1) {\n preDotState = 1;\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1;\n }\n }\n\n if (startDot < 0 || end < 0 || // We saw a non-dot character immediately before the dot.\n preDotState === 0 || // The (right-most) trimmed path component is exactly `..`.\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n}\n\nfunction join() {\n var index = -1;\n var joined;\n\n while (++index < arguments.length) {\n assertPath(arguments[index]);\n\n if (arguments[index]) {\n joined = joined === undefined ? arguments[index] : joined + '/' + arguments[index];\n }\n }\n\n return joined === undefined ? '.' : normalize(joined);\n} // Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\n\n\nfunction normalize(path) {\n var absolute;\n var value;\n assertPath(path);\n absolute = path.charCodeAt(0) === 47;\n /* `/` */\n // Normalize the path according to POSIX rules.\n\n value = normalizeString(path, !absolute);\n\n if (!value.length && !absolute) {\n value = '.';\n }\n\n if (value.length && path.charCodeAt(path.length - 1) === 47\n /* / */\n ) {\n value += '/';\n }\n\n return absolute ? '/' + value : value;\n} // Resolve `.` and `..` elements in a path with directory names.\n\n\nfunction normalizeString(path, allowAboveRoot) {\n var result = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var index = -1;\n var code;\n var lastSlashIndex;\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index);\n } else if (code === 47\n /* `/` */\n ) {\n break;\n } else {\n code = 47;\n /* `/` */\n }\n\n if (code === 47\n /* `/` */\n ) {\n if (lastSlash === index - 1 || dots === 1) {// Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (result.length < 2 || lastSegmentLength !== 2 || result.charCodeAt(result.length - 1) !== 46\n /* `.` */\n || result.charCodeAt(result.length - 2) !== 46\n /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/');\n /* istanbul ignore else - No clue how to cover it. */\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = '';\n lastSegmentLength = 0;\n } else {\n result = result.slice(0, lastSlashIndex);\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/');\n }\n\n lastSlash = index;\n dots = 0;\n continue;\n }\n } else if (result.length) {\n result = '';\n lastSegmentLength = 0;\n lastSlash = index;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n result = result.length ? result + '/..' : '..';\n lastSegmentLength = 2;\n }\n } else {\n if (result.length) {\n result += '/' + path.slice(lastSlash + 1, index);\n } else {\n result = path.slice(lastSlash + 1, index);\n }\n\n lastSegmentLength = index - lastSlash - 1;\n }\n\n lastSlash = index;\n dots = 0;\n } else if (code === 46\n /* `.` */\n && dots > -1) {\n dots++;\n } else {\n dots = -1;\n }\n }\n\n return result;\n}\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}","'use strict'; // Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\n\nexports.cwd = cwd;\n\nfunction cwd() {\n return '/';\n}","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","module.exports = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { fab } from '@fortawesome/free-brands-svg-icons'\nimport {\n faMapMarkerAlt,\n faCalendarAlt,\n faChevronDown,\n faFile,\n faLink\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(fab, faMapMarkerAlt, faCalendarAlt, faChevronDown, faLink, faFile)\n\n\n// FaFacebookF, FaYoutube, FaLinkedinIn, FaTwitter, FaInstagram, FaTiktok","import { graphql, useStaticQuery } from 'gatsby'\n\nconst globalConfig = () => {\n const query = useStaticQuery(graphql`\n {\n allStrapiGlobalConfig {\n nodes {\n author\n robots\n pageMetadata {\n siteDesc: pageDescription\n siteKeywords: pageKeywords\n siteTitle: pageTitle\n }\n siteURL\n }\n }\n }\n `)\n return query\n}\nexport default globalConfig\n","import * as React from 'react'\nimport PropTypes from 'prop-types'\nimport { Helmet } from 'react-helmet'\nimport globalConfig from '../utils/querys/globalConfig'\n\nfunction Seo({ description, lang, meta, title, keywords }) {\n const data = globalConfig()\n let siteDesc= 'Sitio web UCC'\n let siteTitle = 'Universidad Católica de Córdoba'\n let siteKeywords = 'Universidad Católica de Córdoba, UCC'\n const {\n author,\n robots,\n pageMetadata\n } = data?.allStrapiGlobalConfig?.nodes[0]\n\n if(pageMetadata !== null){\n siteDesc = pageMetadata.siteDesc\n siteKeywords = pageMetadata.pageKeywords\n siteTitle = pageMetadata.siteTitle\n }\n \n\n const metaDescription = description ? description : siteDesc\n const defaultTitle = title ? title : siteTitle\n const preventIndex = robots ? 'index, follow' : 'noindex, nofollow'\n const defaultKeywords = keywords ? keywords : siteKeywords\n\n return (\n \n )\n}\n\nSeo.defaultProps = {\n lang: 'es',\n meta: [],\n description: '',\n}\n\nSeo.propTypes = {\n description: PropTypes.string,\n keywords: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n}\n\nexport default Seo","import React, { createContext, useEffect, useState, useContext } from 'react'\nimport PropTypes from 'prop-types'\n\nconst themes = {\n light: {\n '--nav-primary': '#666666',\n '--nav-container': '#ffffff',\n '--nav-active': '#191919',\n '--nav-menu': '#fff',\n\n '--form-field-background': '#0e192a',\n\n '--body-title': '#182c49',\n\n '--primary': '#555',\n '--primary-invert': '#ffffff',\n '--primary-info': '#1d317d',\n '--primary-grey': '#666666',\n '--primary-container': '#ffffff',\n '--primary-container-dark': '#182c49',\n '--primary-container-lightblue': '#009abb',\n\n '--course-container': '#f8f9fa',\n\n '--cards-container': '#ffffff',\n '--cards-container-secondary': '#f7f7f7',\n\n '--secondary': '#182c49',\n '--secondary-container': '#182c49',\n '--terciary-container': '#f8f9fa',\n },\n dark: {\n '--nav-primary': '#cecece',\n '--nav-container': '#383838',\n '--nav-active': '#e7e7e7',\n '--nav-menu': 'rgba(255, 255, 255, 0.95)',\n\n '--form-field-background': '#292929',\n\n '--body-title': '#ffffff',\n\n '--primary': '#ffffff',\n '--primary-invert': '#555',\n '--primary-info': '#0063aa',\n '--primary-grey': '#ffffff',\n '--primary-container': '#292929',\n '--primary-container-dark': '#ffffff14',\n\n '--course-container': '#292929',\n\n '--cards-container': '#373737',\n '--cards-container-secondary': '#ffffff14',\n\n '--secondary': '#ffffff',\n '--secondary-container': '#191919',\n '--terciary-container': '#191919',\n }\n}\n\nconst ThemeContext = createContext(null)\n\n// const { theme, setTheme, toggleTheme } = useTheme()\nexport const useTheme = () => useContext(ThemeContext)\n\n// cambiar si cambia el tema por defecto\nconst DEFAULT_THEME = 'light'\n\nconst ThemeProvider = ({ children }) => {\n const localTheme =\n typeof window !== 'undefined' ? localStorage.getItem('theme') : undefined\n const deviseTheme = getDeviseTheme()\n const [theme, setTheme] = useState(null)\n\n // Guarda el estado del Tema del Sitio\n useEffect(() => {\n setTheme(localTheme || deviseTheme || DEFAULT_THEME)\n }, [])\n // Guarda el estado del Tema del Sitio\n useEffect(() => {\n localStorage.setItem('theme', theme)\n }, [theme])\n\n // Cambiando de Tema con el boton del sitio\n const toggleTheme = () => {\n setTheme((prevTheme) => (prevTheme === 'light' ? 'dark' : 'light'))\n }\n\n // Cambio a \"light\" al recargar el sitio\n const reload =\n typeof window !== 'undefined'\n ? (window.onbeforeunload = function () {\n localStorage.setItem('theme', 'light')\n })\n : undefined\n reload // Llamando a la funcion\n\n return (\n \n
\n {children}\n
\n
\n )\n}\n\nconst getDeviseTheme = () => {\n if (typeof window !== 'undefined') {\n if (window.matchMedia) {\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark'\n } else {\n return 'light'\n }\n } else {\n return DEFAULT_THEME\n }\n } else {\n return undefined\n }\n}\nThemeProvider.propTypes = {\n children: PropTypes.object\n}\n\nexport default ThemeProvider\n","/**\n * Copyright (c) 2014-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 * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n"],"sourceRoot":""}