-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-pages-portfolio-js-2de4814d9a787f84bb26.js.map
1 lines (1 loc) · 357 KB
/
component---src-pages-portfolio-js-2de4814d9a787f84bb26.js.map
1
{"version":3,"sources":["webpack:///./src/components/page-header/PageHeader.js","webpack:///./src/components/project/Project.js","webpack:///./src/components/footer/Footer.js","webpack:///./src/pages/portfolio.js","webpack:///./node_modules/is-whitespace-character/index.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/trim/index.js","webpack:///./node_modules/is-decimal/index.js","webpack:///./node_modules/unist-util-visit/index.js","webpack:///./node_modules/parse-entities/index.js","webpack:///./node_modules/repeat-string/index.js","webpack:///./node_modules/trim-trailing-lines/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/interrupt.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/normalize.js","webpack:///./src/components/header/Header.js","webpack:///./src/components/layout/Layout.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/is-alphabetical/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/defaults.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/get-indentation.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/html.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/tag.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/link.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/react-markdown/lib/react-markdown.js","webpack:///./node_modules/unified/index.js","webpack:///./node_modules/extend/index.js","webpack:///./node_modules/bail/index.js","webpack:///./node_modules/unified/node_modules/vfile/index.js","webpack:///./node_modules/vfile-message/index.js","webpack:///./node_modules/unist-util-stringify-position/index.js","webpack:///./node_modules/unified/node_modules/vfile/core.js","webpack:///./node_modules/replace-ext/index.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/trough/index.js","webpack:///./node_modules/trough/wrap.js","webpack:///./node_modules/x-is-string/index.js","webpack:///./node_modules/is-plain-obj/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/index.js","webpack:///./node_modules/unherit/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/parser.js","webpack:///./node_modules/state-toggle/index.js","webpack:///./node_modules/vfile-location/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/unescape.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/decode.js","webpack:///./node_modules/is-hexadecimal/index.js","webpack:///./node_modules/is-alphanumerical/index.js","webpack:///./node_modules/parse-entities/decode-entity.browser.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenizer.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/set-options.js","webpack:///./node_modules/markdown-escapes/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/parse.js","webpack:///./node_modules/unist-util-remove-position/index.js","webpack:///./node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/unist-util-visit-parents/node_modules/unist-util-is/convert.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/newline.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/code-indented.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/code-fenced.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/blockquote.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/heading-atx.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/thematic-break.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/list.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/util/remove-indentation.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/heading-setext.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/html-block.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/footnote-definition.js","webpack:///./node_modules/collapse-white-space/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/definition.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/table.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/paragraph.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/escape.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/escape.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/auto-link.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/url.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/url.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/html-inline.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/link.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/reference.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/strong.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/strong.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/emphasis.js","webpack:///./node_modules/is-word-character/index.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/emphasis.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/delete.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/delete.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/code-inline.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/code-inline.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/break.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/locate/break.js","webpack:///./node_modules/react-markdown/node_modules/remark-parse/lib/tokenize/text.js","webpack:///./node_modules/mdast-add-list-metadata/index.js","webpack:///./node_modules/mdast-add-list-metadata/node_modules/unist-util-visit-parents/index.js","webpack:///./node_modules/react-markdown/lib/plugins/naive-html.js","webpack:///./node_modules/react-markdown/lib/plugins/disallow-node.js","webpack:///./node_modules/react-markdown/lib/ast-to-react.js","webpack:///./node_modules/react-markdown/node_modules/react-is/index.js","webpack:///./node_modules/react-markdown/node_modules/react-is/cjs/react-is.production.min.js","webpack:///./node_modules/react-markdown/lib/wrap-table-rows.js","webpack:///./node_modules/react-markdown/lib/get-definitions.js","webpack:///./node_modules/react-markdown/lib/uri-transformer.js","webpack:///./node_modules/react-markdown/lib/renderers.js","webpack:///./node_modules/react-markdown/lib/symbols.js","webpack:///./src/images/github.png","webpack:///./src/images/github-white.png"],"names":["PageHeader","title","children","className","s","pageHeader","pageHeader__title","pageHeader__description","Project","screenshot","repoLink","siteLink","logos","console","log","project","project__content","project__title","project__description","project__links","project__link","href","src","githubLogo","project__githubLink","alt","project__presentation","project__screenshot","fluid","project__logos","fixed","Footer","footer","extractImgData","mode","name","data","allFile","nodes","find","node","childImageSharp","originalName","query","Portfolio","Layout","allMarkdownRemark","map","imgFluid","frontmatter","logosFixed","key","id","rawMarkdownBody","footerStyles","footer__logo","module","exports","character","re","test","fromCode","charAt","String","fromCharCode","target","i","arguments","length","source","hasOwnProperty","call","Object","prototype","str","replace","left","right","code","charCodeAt","visit","visitParents","CONTINUE","SKIP","EXIT","tree","visitor","reverse","parents","parent","index","indexOf","legacy","invalid","decimal","hexadecimal","alphanumerical","decodeEntity","value","options","option","settings","defaults","position","indent","start","entityCharacters","namedEntity","terminated","characters","reference","following","warning","reason","output","entity","begin","type","prev","next","diff","end","additional","nonTerminated","handleText","text","handleReference","handleWarning","textContext","referenceContext","warningContext","pos","lines","column","line","queue","result","now","offset","messages","noop","lineFeed","ampersand","tab","formFeed","space","lessThan","numberSign","uppercaseX","lowercaseX","hexa","deci","tests","own","semicolon","namedUnknown","namedNotTerminated","namedEmpty","attribute","equalsTo","numericNotTerminated","parseInt","bases","numericProhibited","replacementCharacter","numericDisallowed","disallowed","numericEmpty","flush","push","slice","join","parse","Function","cache","res","num","TypeError","max","substr","val","interruptors","tokenizers","ctx","params","interruptor","config","fn","bool","ignore","bools","count","undefined","apply","collapseWhiteSpace","toLowerCase","Header","header","header__title","to","header__link","header__nav","header__navItem","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","nextTick","args","Array","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","resolve","resolvedPath","resolvedAbsolute","path","split","p","normalize","isAbsolute","trailingSlash","paths","relative","from","trim","arr","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","gfm","commonmark","footnotes","pedantic","blocks","size","stops","floor","global","inheritIfRequired","dP","gOPN","isRegExp","$flags","$RegExp","RegExp","Base","proto","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","constructor","proxy","configurable","get","set","it","keys","openTag","closeTag","openCloseTag","tag","fromIndex","link","image","_interopRequireDefault","require","__esModule","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","loading","groupByMedia","getImageSrcKey","_ref","imageCache","create","inImageCache","hasNativeLazyLoadSupport","HTMLImageElement","isBrowser","window","hasIOSupport","IntersectionObserver","WeakMap","generateImageSources","imageVariants","_ref2","srcSet","srcSetWebp","media","createElement","Fragment","withMedia","without","forEach","variant","generateTracedSVGSources","_ref3","tracedSVG","generateBase64Sources","_ref4","base64","generateNoscriptSource","_ref5","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","isIntersecting","intersectionRatio","unobserve","rootMargin","observe","noscriptImg","width","height","crossOrigin","draggable","Placeholder","_ref6","generateSources","spreadProps","baseImage","Img","forwardRef","ref","style","onLoad","onError","otherProps","top","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","imageRef","createRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","setState","currentSrc","render","_convertProps","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","JSON","stringify","paddingBottom","aspectRatio","bottom","dangerouslySetInnerHTML","__html","_imageVariants","_image","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","oneOfType","arrayOf","oneOf","_default","createHTML","$export","fails","defined","quot","S","p1","NAME","exec","O","P","F","_toConsumableArray","isArray","arr2","_arrayWithoutHoles","iter","Symbol","iterator","toString","_iterableToArray","_nonIterableSpread","xtend","unified","PropTypes","addListMetadata","naiveHtml","disallowNode","astToReact","wrapTableRows","getDefinitions","uriTransformer","defaultRenderers","symbols","allTypes","ReactMarkdown","parserOptions","allowedTypes","disallowedTypes","renderers","parser","plugins","reduce","applyParserPlugin","rawAst","renderProps","definitions","astPlugins","removalMethod","unwrapDisallowed","ofType","allowNode","ifNotMatch","renderHtml","escapeHtml","skipHtml","hasHtmlParser","some","item","identity","HtmlParser","determineAstPlugins","transformedAst","runSync","ast","plugin","use","sourcePos","rawSourcePos","transformLinkUri","linkTarget","transformImageUri","types","extend","bail","vfile","trough","plain","attachers","transformers","namespace","frozen","freezeIndex","processor","assertUnfrozen","freeze","addPlugin","addList","addPreset","add","doc","Parser","file","assertParser","newable","Compiler","assertCompiler","assertNode","compile","err","assertDone","processSync","destination","values","transformer","Infinity","Promise","executor","reject","pipeline","contents","asyncName","hasOwn","toStr","defineProperty","gOPD","getOwnPropertyDescriptor","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","setProperty","enumerable","newValue","writable","getProperty","copy","copyIsArray","clone","deep","VMessage","VFile","message","origin","filePath","fatal","info","fail","warn","VMessagePrototype","range","location","parseOrigin","stack","ruleId","point","buffer","encoding","order","prop","history","assertPart","part","assertNonEmpty","assertPath","stem","npath","nFileName","isBuffer","readFloatLE","isSlowBuffer","_isBuffer","wrap","fns","middleware","input","done","callback","invoked","error","then","x","getPrototypeOf","unherit","Local","inherits","Super","Of","From","parameters","ctor","superCtor","super_","TempCtor","toggle","vfileLocation","unescape","decode","tokenizer","setOptions","inList","inBlock","inLink","atStart","toOffset","exitStart","enterList","enterLink","enterBlock","interruptParagraph","interruptList","interruptBlockquote","blockTokenizers","newline","indentedCode","fencedCode","blockquote","atxHeading","thematicBreak","list","setextHeading","html","footnote","definition","table","paragraph","inlineTokenizers","escape","autoLink","url","strong","emphasis","deletion","blockMethods","inlineMethods","tokenizeBlock","tokenizeInline","tokenizeFactory","context","offsetToPositionFactory","indices","positionToOffsetFactory","isNaN","toPosition","entities","decoder","raw","offsets","handler","alphabetical","_char","document","innerHTML","textContent","method","matched","valueLength","self","tokens","methods","eat","updatePosition","onlyAtStart","notInList","notInBlock","notInLink","eof","subvalue","lastIndex","Position","before","indentation","getOffset","combined","n","l","substring","validateEat","reset","MERGEABLE_NODES","mergeable","escapes","removePosition","content","EXPRESSION_LINE_BREAKS","C_NEWLINE","hard","soft","force","convert","is","one","subresult","toResult","step","all","Boolean","typeFactory","ok","anyFactory","matchesFactory","checks","results","convertAll","whitespace","silent","repeat","blankQueue","subvalueQueue","contentQueue","C_SPACE","CODE_INDENT","C_TAB","lang","fenceCount","flag","exdentedContent","closing","exdentedClosing","C_TILDE","C_TICK","MIN_FENCE_COUNT","CODE_INDENT_COUNT","interrupt","rest","nextIndex","startIndex","prefixed","exit","currentLine","indents","C_GT","depth","C_HASH","MAX_ATX_COUNT","markerCount","C_ASTERISK","C_DASH","C_UNDERSCORE","THEMATIC_BREAK_MARKER_COUNT","getIndent","removeIndent","markers","ordered","currentMarker","prevEmpty","empty","items","allLines","emptyLines","enterTop","exitBlockquote","isLoose","indented","interuptors","TAB_SIZE","LIST_ORDERED_COMMONMARK_MARKERS","LIST_ORDERED_MARKERS","LIST_UNORDERED_MARKERS","trail","loose","listItem","C_X_LOWER","EXPRESSION_LOOSE_LIST_ITEM","EXPRESSION_TASK_ITEM","EXPRESSION_BULLET","EXPRESSION_PEDANTIC_BULLET","EXPRESSION_INITIAL_INDENT","task","checked","pedanticListItem","normalListItem","match","replacer","$0","bullet","trimmedLines","$1","$2","$3","$4","Number","cof","toPrimitive","$trim","$Number","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","NaN","digits","that","valueOf","j","maximum","padding","minIndent","matrix","shift","MAX_HEADING_INDENT","SETEXT_MARKERS","sequence","sequences","C_LT","footnoteDefinition","C_BACKSLASH","C_BRACKET_OPEN","C_BRACKET_CLOSE","C_CARET","C_COLON","EXPRESSION_INITIAL_TAB","subqueue","identifier","C_DOUBLE_QUOTE","C_SINGLE_QUOTE","C_PAREN_OPEN","C_PAREN_CLOSE","beforeURL","beforeTitle","isEnclosedURLCharacter","isUnclosedURLCharacter","alignments","alignment","row","hasDash","align","cell","preamble","opening","lineCount","rows","lineIndex","pipeIndex","C_PIPE","MIN_TABLE_ROWS","TABLE_ALIGN_NONE","TABLE_ALIGN_LEFT","TABLE_ALIGN_CENTER","TABLE_ALIGN_RIGHT","MIN_TABLE_COLUMNS","trimTrailingLines","locate","locator","C_AT_SIGN","C_SLASH","MAILTO","MAILTO_LENGTH","hasAtCharacter","MAILTO_PROTOCOL","PROTOCOLS","PROTOCOLS_LENGTH","protocol","parenCount","nextCharacter","inlineHTML","EXPRESSION_HTML_LINK_OPEN","EXPRESSION_HTML_LINK_CLOSE","LINK_MARKERS","COMMONMARK_LINK_MARKERS","closed","hasMarker","isImage","T_LINK","T_IMAGE","T_FOOTNOTE","REFERENCE_TYPE_SHORTCUT","REFERENCE_TYPE_COLLAPSED","REFERENCE_TYPE_FULL","bracketed","intro","referenceType","asterisk","underscore","word","strikethrough","DOUBLE","previous","preceding","inlineCode","openingCount","found","tickQueue","hardBreak","MIN_BREAK_LENGTH","visitWithParents","listNode","child","pop","selfClosingRe","simpleTagRe","open","currentParent","selfClosing","getSelfClosing","getSimpleTag","matching","matchingTag","findAndPull","fromNode","toNode","toIndex","virtual","untangle","disallow","React","ReactIs","defaultNodePosition","renderer","isValidElementType","nodeProps","opts","isTagRenderer","sourcePosition","includeNodeIndex","parentChildCount","assignDefined","nodeKey","level","tight","unwrapParagraphs","getListItemChildren","childNode","language","inline","columnAlignment","isHeader","isBlock","parsedChildren","element","Children","toArray","cloneElement","mergeNodeChildren","getNodeProps","attrs","b","c","d","g","h","k","m","q","r","t","v","w","y","a","u","$$typeof","z","typeOf","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","defs","protocols","uri","colon","supportsStringRender","SimpleRenderer","getCoreProps","linkReference","imageReference","tableHead","tableBody","tableRow","tableCell","textAlign","coreProps","root","useFragment","checkbox","readOnly","heading","comp","virtualHtml","parsedHtml"],"mappings":"qKAYeA,EATI,SAAC,GAAyB,IAAvBC,EAAsB,EAAtBA,MAAOC,EAAe,EAAfA,SAC3B,OACE,yBAAKC,UAAWC,IAAEC,YAChB,wBAAIF,UAAWC,IAAEE,mBAAqBL,GACtC,yBAAKE,UAAWC,IAAEG,yBAA2BL,K,wEC2BpCM,EA5BC,SAAC,GAAgE,IAA9DP,EAA6D,EAA7DA,MAAOC,EAAsD,EAAtDA,SAAUO,EAA4C,EAA5CA,WAAYC,EAAgC,EAAhCA,SAAUC,EAAsB,EAAtBA,SAAUC,EAAY,EAAZA,MAElE,OADAC,QAAQC,IAAIL,GAEV,yBAAKN,UAAWC,IAAEW,SAChB,yBAAKZ,UAAWC,IAAEY,kBAChB,wBAAIb,UAAWC,IAAEa,gBAAkBhB,GACnC,yBAAKE,UAAWC,IAAEc,sBAChB,kBAAC,IAAD,KAAiBhB,IAEnB,yBAAKC,UAAWC,IAAEe,gBAChB,uBAAGhB,UAAWC,IAAEgB,cAAeC,KAAOX,GACpC,yBAAKY,IAAKC,IAAYpB,UAAWC,IAAEoB,oBAAqBC,IAAI,iBAE9D,uBAAGtB,UAAWC,IAAEgB,cAAeC,KAAOV,GAAtC,qBAGJ,yBAAKR,UAAWC,IAAEsB,uBAChB,yBAAKvB,UAAWC,IAAEuB,qBAChB,kBAAC,IAAD,CAAKC,MAAQnB,EAAagB,IAAI,6BAEhC,yBAAKtB,UAAWC,IAAEyB,gBAChB,kBAAC,IAAD,CAAKC,MAAQlB,EAAQa,IAAI,gC,kBChBpBM,EARA,SAAC,GAAkB,IAAhB7B,EAAe,EAAfA,SAChB,OACE,yBAAKC,UAAWC,IAAE4B,QACd9B,I,wDCGR,IAAM+B,EAAiB,SAACC,EAAMC,EAAMC,GAClC,OAAOA,EAAKC,QAAQC,MAAMC,MAAK,SAACC,GAC9B,OAAOA,EAAKC,gBAAgBP,GAAMQ,eAAiBP,KAClDM,gBAAgBP,IAsCRS,GAFEC,UAjCG,SAAC,GAAc,IAAZR,EAAW,EAAXA,KACnB,OACE,kBAACS,EAAA,EAAD,KACE,kBAAC,EAAD,CAAY5C,MAAM,aAAlB,8RAOEmC,EAAKU,kBAAkBR,MAAMS,KAAI,SAACP,GAChC,IAAMQ,EAAWf,EAAe,QAASO,EAAKS,YAAYxC,WAAY2B,GAChEc,EAAajB,EAAe,QAASO,EAAKS,YAAYrC,MAAOwB,GACnE,OACE,kBAAC,EAAD,CACAe,IAAMX,EAAKS,YAAYG,GACvBnD,MAAQuC,EAAKS,YAAYhD,MACzBQ,WAAauC,EACbpC,MAAQsC,EACRvC,SAAW6B,EAAKS,YAAYtC,SAC5BD,SAAW8B,EAAKS,YAAYvC,UACxB8B,EAAKa,oBAKf,kBAAC,EAAD,qBACe,uBAAGhC,KAAK,8BAA6B,yBAAKC,IAAKC,IAAYpB,UAAWmD,IAAaC,aAAc9B,IAAI,oBAQxG,c,6BChDlB+B,EAAOC,QAKP,SAAoBC,GAClB,OAAOC,EAAGC,KAA0B,iBAAdF,EAAyBG,EAASH,GAAaA,EAAUI,OAAO,KALxF,IAAID,EAAWE,OAAOC,aAClBL,EAAK,M,cCJTH,EAAOC,QAGP,WAGE,IAFA,IAAIQ,EAAS,GAEJC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GAEvB,IAAK,IAAIf,KAAOkB,EACVC,EAAeC,KAAKF,EAAQlB,KAC9Bc,EAAOd,GAAOkB,EAAOlB,IAK3B,OAAOc,GAfT,IAAIK,EAAiBE,OAAOC,UAAUH,gB,gBCDtC,EAAQ,KAERb,EAAUD,EAAOC,QAEjB,SAAciB,GACZ,OAAOA,EAAIC,QAAQ,aAAc,MAG3BC,KAAO,SAAUF,GACvB,OAAOA,EAAIC,QAAQ,OAAQ,KAG7BlB,EAAQoB,MAAQ,SAAUH,GACxB,OAAOA,EAAIC,QAAQ,OAAQ,M,6BCX7BnB,EAAOC,QAGP,SAAiBC,GACf,IAAIoB,EAA4B,iBAAdpB,EAAyBA,EAAUqB,WAAW,GAAKrB,EACrE,OAAOoB,GAAQ,IAAMA,GAAQ,K,6BCL/B,EAAQ,IAERtB,EAAOC,QAAUuB,EAEjB,IAAIC,EAAe,EAAQ,KAEvBC,EAAWD,EAAaC,SACxBC,EAAOF,EAAaE,KACpBC,EAAOH,EAAaG,KAKxB,SAASJ,EAAMK,EAAMzB,EAAM0B,EAASC,GACd,mBAAT3B,GAA0C,mBAAZ0B,IACvCC,EAAUD,EACVA,EAAU1B,EACVA,EAAO,MAGTqB,EAAaI,EAAMzB,GAEnB,SAAkBpB,EAAMgD,GACtB,IAAIC,EAASD,EAAQA,EAAQpB,OAAS,GAClCsB,EAAQD,EAASA,EAAOvF,SAASyF,QAAQnD,GAAQ,KACrD,OAAO8C,EAAQ9C,EAAMkD,EAAOD,KALKF,GAXrCP,EAAME,SAAWA,EACjBF,EAAMG,KAAOA,EACbH,EAAMI,KAAOA,G,6BCXb,IAAIQ,EAAS,EAAQ,KAEjBC,EAAU,EAAQ,KAElBC,EAAU,EAAQ,KAElBC,EAAc,EAAQ,KAEtBC,EAAiB,EAAQ,KAEzBC,EAAe,EAAQ,KAE3BzC,EAAOC,QA4EP,SAAuByC,EAAOC,GAC5B,IACIC,EACAjD,EAFAkD,EAAW,GAIVF,IACHA,EAAU,IAGZ,IAAKhD,KAAOmD,EACVF,EAASD,EAAQhD,GACjBkD,EAASlD,GAAOiD,QAA0CE,EAASnD,GAAOiD,GAGxEC,EAASE,SAASC,QAAUH,EAASE,SAASE,SAChDJ,EAASG,OAASH,EAASE,SAASC,QAAU,GAC9CH,EAASE,SAAWF,EAASE,SAASE,OAGxC,OAKF,SAAeP,EAAOG,GACpB,IAiBIK,EACAC,EACAC,EACAC,EACAnD,EACAoD,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAX,EACAY,EACAzD,EACA0D,EACAC,EACAC,EACAC,EAnCAC,GAAarB,EAASqB,WACtBC,GAAgBtB,EAASsB,cACzBC,GAAavB,EAASwB,KACtBC,GAAkBzB,EAASS,UAC3BiB,GAAgB1B,EAASW,QACzBgB,GAAc3B,EAAS2B,YACvBC,GAAmB5B,EAAS4B,iBAC5BC,GAAiB7B,EAAS6B,eAC1BC,GAAM9B,EAASE,SACfC,GAASH,EAASG,QAAU,GAC5BpC,GAAS8B,EAAM9B,OACfsB,GAAQ,EACR0C,IAAS,EACTC,GAASF,GAAIE,QAAU,EACvBC,GAAOH,GAAIG,MAAQ,EACnBC,GAAQ,GACRC,GAAS,GAqBa,iBAAfd,KACTA,GAAaA,GAAW3C,WAAW,IAIrCuC,EAAOmB,KAEPzB,EAAUe,GAiOV,SAAoBjD,EAAM4D,GACxB,IAAInC,EAAWkC,KACflC,EAAS8B,QAAUK,EACnBnC,EAASmC,QAAUA,EACnBX,GAAcxD,KAAK2D,GAAgBS,EAAS7D,GAAOyB,EAAUzB,IArOxB8D,EAEvClD,KACAtB,KAEA,OAASsB,GAAQtB,IAQf,GANIV,IAAcmF,IAChBR,GAAS7B,GAAO4B,KAAU,IAG5B1E,EAAYwC,EAAMnB,WAAWW,OAEXoD,EAAW,CAG3B,IAFA/B,EAAYb,EAAMnB,WAAWW,GAAQ,MAEnBqD,GAAOhC,IAAc8B,GAAY9B,IAAciC,GAAYjC,IAAckC,GAASlC,IAAc+B,GAAa/B,IAAcmC,GAAYnC,GAAcA,GAAaW,IAAcX,IAAcW,GAAY,CAI1Na,IAASvE,EAAaN,GACtB2E,KACA,SAgCF,IA5BAjB,EADAX,EAAQf,GAAQ,EAEhB+B,EAAMhB,EAEFM,IAAcoC,GAEhB1B,IAAQL,GAERL,EAAYb,EAAMnB,WAAW0C,MAEX2B,GAAcrC,IAAcsC,GAE5ChC,EAAOiC,EACP7B,IAAQL,GAGRC,EAAOkC,GAITlC,EAAOlF,EAGTuE,EAAmB,GACnBS,EAAS,GACTN,EAAa,GACbjD,EAAO4F,EAAMnC,GACbI,MAESA,EAAMrD,KACb2C,EAAYb,EAAMnB,WAAW0C,GAExB7D,EAAKmD,KAIVF,GAAc7C,EAAa+C,GAIvBM,IAASlF,GAAQsH,EAAIlF,KAAKqB,EAAQiB,KACpCH,EAAmBG,EACnBM,EAASvB,EAAOiB,KAIpBD,EAAaV,EAAMnB,WAAW0C,KAASiC,KAGrCjC,KACAd,EAAcU,IAASlF,GAAO8D,EAAaY,MAGzCH,EAAmBG,EACnBM,EAASR,IAIba,EAAO,EAAIC,EAAMhB,GAEZG,GAAee,MACRd,EAMDQ,IAASlF,GAGdyE,IAAeO,EACjBH,EAAQ2C,EAAc,IAIlBjD,IAAqBG,IACvBY,EAAML,EAAQV,EAAiBtC,OAC/BoD,EAAO,EAAIC,EAAML,EACjBR,GAAa,GAIVA,IACHK,EAASP,EAAmBkD,EAAqBC,EAE7CxD,EAASyD,WACX/C,EAAYb,EAAMnB,WAAW0C,MAEXsC,GAChB/C,EAAQC,EAAQO,GAChBL,EAAS,MACAnB,EAAee,GACxBI,EAAS,KAETH,EAAQC,EAAQO,GAGlBR,EAAQC,EAAQO,KAKtBV,EAAYK,IAEPP,GAGHI,EAAQgD,EAAsBxC,GAIhCV,EAAYmD,SAASpD,EAAYqD,EAAM7C,KAoH3BvC,GAjHGgC,IAkHN,OAAUhC,IAAQ,OAAUA,GAAO,SAjH1CkC,EAAQmD,EAAmB3C,GAC3BV,EAAY9C,EAAaoG,IAChBtD,KAAajB,GAGtBmB,EAAQqD,EAAmB7C,GAC3BV,EAAYjB,EAAQiB,KAGpBI,EAAS,GAELoD,EAAWxD,IACbE,EAAQqD,EAAmB7C,GAIzBV,EAAY,QAEdI,GAAUlD,GADV8C,GAAa,SACwB,GAAe,OACpDA,EAAY,MAAqB,KAAZA,GAGvBA,EAAYI,EAASlD,EAAa8C,KAzEhCO,IAASlF,GACX6E,EAAQuD,EAAc/C,IA8EtBV,GACF0D,KACAlD,EAAOmB,KACP/C,GAAQ+B,EAAM,EACdY,IAAUZ,EAAMhB,EAAQ,EACxB+B,GAAOiC,KAAK3D,IACZS,EAAOkB,MACFC,SAEDZ,IACFA,GAAgBvD,KAAK0D,GAAkBnB,EAAW,CAChDL,MAAOa,EACPG,IAAKF,GACJrB,EAAMwE,MAAMjE,EAAQ,EAAGgB,IAG5BH,EAAOC,IAMPV,EAAaX,EAAMwE,MAAMjE,EAAQ,EAAGgB,GACpCc,IAAS1B,EACTwB,IAAUxB,EAAWzC,OACrBsB,GAAQ+B,EAAM,QAIE,KAAd/D,IAEA4E,KACAF,KACAC,GAAS,GAGT3E,GAAcA,GAChB6E,IAASvE,EAAaN,GACtB2E,MAEAmC,KA4CR,IAAoB1F,GAtClB,OAAO0D,GAAOmC,KAAK,IAEnB,SAASlC,KACP,MAAO,CACLH,KAAMA,GACND,OAAQA,GACRK,OAAQhD,IAASyC,GAAIO,QAAU,IAenC,SAAS8B,KACHjC,KACFC,GAAOiC,KAAKlC,IAERX,IACFA,GAAWrD,KAAKyD,GAAaO,GAAO,CAClC9B,MAAOa,EACPG,IAAKgB,OAITF,GAAQ,KAxSLqC,CAAM1E,EAAOG,IA9FtB,IAAIoD,EAAM,GAAGnF,eACTN,EAAeD,OAAOC,aACtB4E,EAAOiC,SAASpG,UAEhB6B,EAAW,CACbU,QAAS,KACTF,UAAW,KACXe,KAAM,KACNK,eAAgB,KAChBD,iBAAkB,KAClBD,YAAa,KACbzB,SAAU,GACVmB,WAAY,KACZoC,WAAW,EACXnC,eAAe,GAGboB,EAAM,EAENF,EAAW,GAEXG,EAAW,GAEXC,EAAQ,GAERH,EAAY,GAEZY,EAAY,GAEZR,EAAW,GAEXa,EAAW,GAEXZ,EAAa,GAEbC,EAAa,GAEbC,EAAa,IAEbe,EAAuB,MAGvBjI,EAAO,QACPmH,EAAO,cACPC,EAAO,UAEPW,EAAQ,GACZA,EAAMZ,GAAQ,GACdY,EAAMX,GAAQ,GAKd,IAAIC,EAAQ,GACZA,EAAMrH,GAAQ6D,EACdwD,EAAMD,GAAQzD,EACd0D,EAAMF,GAAQvD,EAEd,IAAI6D,EAAqB,EACrBI,EAAuB,EACvBH,EAAa,EACbU,EAAe,EACfZ,EAAe,EACfU,EAAoB,EACpBF,EAAoB,EAEpBxB,EAAW,GA+Uf,SAAS2B,EAAWxF,GAClB,OAAOA,GAAQ,GAAUA,GAAQ,GAAmB,KAATA,GAAmBA,GAAQ,IAAUA,GAAQ,IAAUA,GAAQ,KAAUA,GAAQ,KAAUA,GAAQ,OAAUA,GAAQ,OAA8B,QAAZ,MAAPA,IAAiD,QAAZ,MAAPA,GA/U3M6D,EAASiB,GAAsB,+DAC/BjB,EAASqB,GAAwB,iEACjCrB,EAASkB,GAAc,6CACvBlB,EAAS4B,GAAgB,+CACzB5B,EAASgB,GAAgB,2CACzBhB,EAAS0B,GAAqB,oDAC9B1B,EAASwB,GAAqB,gF,6BC7E9B,IACIW,EADAC,EAAM,GAMVvH,EAAOC,QAmBP,SAAgBiB,EAAKsG,GACnB,GAAmB,iBAARtG,EACT,MAAM,IAAIuG,UAAU,qBAItB,GAAY,IAARD,EAAW,OAAOtG,EACtB,GAAY,IAARsG,EAAW,OAAOtG,EAAMA,EAC5B,IAAIwG,EAAMxG,EAAIN,OAAS4G,EAEvB,GAAIF,IAAUpG,QAAwB,IAAVoG,EAC1BA,EAAQpG,EACRqG,EAAM,QACD,GAAIA,EAAI3G,QAAU8G,EACvB,OAAOH,EAAII,OAAO,EAAGD,GAGvB,KAAOA,EAAMH,EAAI3G,QAAU4G,EAAM,GACrB,EAANA,IACFD,GAAOrG,GAGTsG,IAAQ,EACRtG,GAAOA,EAKT,OADAqG,GADAA,GAAOrG,GACGyG,OAAO,EAAGD,K,6BC7DtB1H,EAAOC,QAGP,SAA2ByC,GACzB,IAAIkF,EAAMrH,OAAOmC,GACbR,EAAQ0F,EAAIhH,OAEhB,KAAOgH,EAAItH,SAAS4B,KAAW4C,IAG/B,OAAO8C,EAAIV,MAAM,EAAGhF,EAAQ,IAT9B,IAAI4C,EAAO,M,6BCDX9E,EAAOC,QAEP,SAAmB4H,EAAcC,EAAYC,EAAKC,GAChD,IAIIC,EACAC,EACAC,EACAjD,EACAkD,EACAC,EATAC,EAAQ,CAAC,WAAY,cACrBC,EAAQD,EAAM1H,OACdA,EAASiH,EAAajH,OACtBsB,GAAS,EAQb,OAASA,EAAQtB,GAAQ,CAOvB,IANAqH,EAAcJ,EAAa3F,GAC3BgG,EAASD,EAAY,IAAM,GAC3BE,EAAKF,EAAY,GACjB/C,GAAU,EACVmD,GAAS,IAEAnD,EAASqD,GAGhB,QAAqBC,IAAjBN,EAFJE,EAAOE,EAAMpD,KAEqBgD,EAAOE,KAAUL,EAAIpF,QAAQyF,GAAO,CACpEC,GAAS,EACT,MAIJ,IAAIA,GAIAP,EAAWK,GAAIM,MAAMV,EAAKC,GAC5B,OAAO,EAIX,OAAO,I,6BCvCT,IAAIU,EAAqB,EAAQ,KAEjC1I,EAAOC,QAIP,SAAmByC,GACjB,OAAOgG,EAAmBhG,GAAOiG,gB,4ECMpBC,EAXA,WACb,OACE,yBAAKjM,UAAWC,IAAEiM,QAChB,wBAAIlM,UAAWC,IAAEkM,eAAe,kBAAC,OAAD,CAAMC,GAAG,IAAIpM,UAAWC,IAAEoM,cAA1B,YAChC,wBAAIrM,UAAWC,IAAEqM,aACf,wBAAItM,UAAWC,IAAEsM,iBAAiB,kBAAC,OAAD,CAAMH,GAAG,aAAapM,UAAWC,IAAEoM,cAAnC,iB,cCK3B3J,IATA,SAAC,GAAkB,IAAhB3C,EAAe,EAAfA,SAChB,OACE,oCACE,kBAAC,EAAD,MACEA,K,iBCRR,IAKIyM,EACAC,EANAC,EAAUrJ,EAAOC,QAAU,GAQ/B,SAASqJ,IACP,MAAM,IAAIC,MAAM,mCAGlB,SAASC,IACP,MAAM,IAAID,MAAM,qCAyBlB,SAASE,EAAWC,GAClB,GAAIP,IAAqBQ,WAEvB,OAAOA,WAAWD,EAAK,GAIzB,IAAKP,IAAqBG,IAAqBH,IAAqBQ,WAElE,OADAR,EAAmBQ,WACZA,WAAWD,EAAK,GAGzB,IAEE,OAAOP,EAAiBO,EAAK,GAC7B,MAAOE,GACP,IAEE,OAAOT,EAAiBpI,KAAK,KAAM2I,EAAK,GACxC,MAAOE,GAEP,OAAOT,EAAiBpI,KAAK8I,KAAMH,EAAK,MA3C9C,WACE,IAEIP,EADwB,mBAAfQ,WACUA,WAEAL,EAErB,MAAOM,GACPT,EAAmBG,EAGrB,IAEIF,EAD0B,mBAAjBU,aACYA,aAEAN,EAEvB,MAAOI,GACPR,EAAqBI,GAlBzB,GA2EA,IAEIO,EAFAhF,EAAQ,GACRiF,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaD,IAIlBC,GAAW,EAEPD,EAAanJ,OACfmE,EAAQgF,EAAaI,OAAOpF,GAE5BkF,GAAc,EAGZlF,EAAMnE,QACRwJ,KAIJ,SAASA,IACP,IAAIJ,EAAJ,CAIA,IAAIK,EAAUZ,EAAWS,GACzBF,GAAW,EAGX,IAFA,IAAIM,EAAMvF,EAAMnE,OAET0J,GAAK,CAIV,IAHAP,EAAehF,EACfA,EAAQ,KAECkF,EAAaK,GAChBP,GACFA,EAAaE,GAAYM,MAI7BN,GAAc,EACdK,EAAMvF,EAAMnE,OAGdmJ,EAAe,KACfC,GAAW,EA1Eb,SAAyBQ,GACvB,GAAIpB,IAAuBU,aAEzB,OAAOA,aAAaU,GAItB,IAAKpB,IAAuBI,IAAwBJ,IAAuBU,aAEzE,OADAV,EAAqBU,aACdA,aAAaU,GAGtB,IAESpB,EAAmBoB,GAC1B,MAAOZ,GACP,IAEE,OAAOR,EAAmBrI,KAAK,KAAMyJ,GACrC,MAAOZ,GAGP,OAAOR,EAAmBrI,KAAK8I,KAAMW,KAqDzCC,CAAgBJ,IAoBlB,SAASK,EAAKhB,EAAKiB,GACjBd,KAAKH,IAAMA,EACXG,KAAKc,MAAQA,EAef,SAASvF,KAlCTiE,EAAQuB,SAAW,SAAUlB,GAC3B,IAAImB,EAAO,IAAIC,MAAMnK,UAAUC,OAAS,GAExC,GAAID,UAAUC,OAAS,EACrB,IAAK,IAAIF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IACpCmK,EAAKnK,EAAI,GAAKC,UAAUD,GAI5BqE,EAAMkC,KAAK,IAAIyD,EAAKhB,EAAKmB,IAEJ,IAAjB9F,EAAMnE,QAAiBoJ,GACzBP,EAAWW,IAUfM,EAAKzJ,UAAUsJ,IAAM,WACnBV,KAAKH,IAAIjB,MAAM,KAAMoB,KAAKc,QAG5BtB,EAAQ5M,MAAQ,UAChB4M,EAAQ0B,SAAU,EAClB1B,EAAQ2B,IAAM,GACd3B,EAAQ4B,KAAO,GACf5B,EAAQ6B,QAAU,GAElB7B,EAAQ8B,SAAW,GAInB9B,EAAQ+B,GAAKhG,EACbiE,EAAQgC,YAAcjG,EACtBiE,EAAQiC,KAAOlG,EACfiE,EAAQkC,IAAMnG,EACdiE,EAAQmC,eAAiBpG,EACzBiE,EAAQoC,mBAAqBrG,EAC7BiE,EAAQqC,KAAOtG,EACfiE,EAAQsC,gBAAkBvG,EAC1BiE,EAAQuC,oBAAsBxG,EAE9BiE,EAAQwC,UAAY,SAAUlN,GAC5B,MAAO,IAGT0K,EAAQyC,QAAU,SAAUnN,GAC1B,MAAM,IAAI4K,MAAM,qCAGlBF,EAAQ0C,IAAM,WACZ,MAAO,KAGT1C,EAAQ2C,MAAQ,SAAUC,GACxB,MAAM,IAAI1C,MAAM,mCAGlBF,EAAQ6C,MAAQ,WACd,OAAO,I,iBC9MT,YA8BA,SAASC,EAAeC,EAAOC,GAI7B,IAFA,IAAIC,EAAK,EAEA5L,EAAI0L,EAAMxL,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC1C,IAAI6L,EAAOH,EAAM1L,GAEJ,MAAT6L,EACFH,EAAMI,OAAO9L,EAAG,GACE,OAAT6L,GACTH,EAAMI,OAAO9L,EAAG,GAChB4L,KACSA,IACTF,EAAMI,OAAO9L,EAAG,GAChB4L,KAKJ,GAAID,EACF,KAAOC,IAAMA,EACXF,EAAMK,QAAQ,MAIlB,OAAOL,EAyPT,SAASM,EAAOC,EAAIC,GAClB,GAAID,EAAGD,OAAQ,OAAOC,EAAGD,OAAOE,GAGhC,IAFA,IAAIrF,EAAM,GAED7G,EAAI,EAAGA,EAAIiM,EAAG/L,OAAQF,IACzBkM,EAAED,EAAGjM,GAAIA,EAAGiM,IAAKpF,EAAIN,KAAK0F,EAAGjM,IAGnC,OAAO6G,EAxTT,EAAQ,IAER,EAAQ,IA0DRtH,EAAQ4M,QAAU,WAIhB,IAHA,IAAIC,EAAe,GACfC,GAAmB,EAEdrM,EAAIC,UAAUC,OAAS,EAAGF,IAAM,IAAMqM,EAAkBrM,IAAK,CACpE,IAAIsM,EAAOtM,GAAK,EAAIC,UAAUD,GAAK2I,EAAQ0C,MAE3C,GAAoB,iBAATiB,EACT,MAAM,IAAIvF,UAAU,6CACVuF,IAIZF,EAAeE,EAAO,IAAMF,EAC5BC,EAAsC,MAAnBC,EAAK1M,OAAO,IASjC,OAAQyM,EAAmB,IAAM,KAHjCD,EAAeX,EAAeO,EAAOI,EAAaG,MAAM,MAAM,SAAUC,GACtE,QAASA,MACNH,GAAkB5F,KAAK,OAC2B,KAKzDlH,EAAQkN,UAAY,SAAUH,GAC5B,IAAII,EAAanN,EAAQmN,WAAWJ,GAChCK,EAAqC,MAArB1F,EAAOqF,GAAO,GAclC,OAZAA,EAAOb,EAAeO,EAAOM,EAAKC,MAAM,MAAM,SAAUC,GACtD,QAASA,MACNE,GAAYjG,KAAK,OAERiG,IACZJ,EAAO,KAGLA,GAAQK,IACVL,GAAQ,MAGFI,EAAa,IAAM,IAAMJ,GAInC/M,EAAQmN,WAAa,SAAUJ,GAC7B,MAA0B,MAAnBA,EAAK1M,OAAO,IAIrBL,EAAQkH,KAAO,WACb,IAAImG,EAAQxC,MAAM7J,UAAUiG,MAAMnG,KAAKJ,UAAW,GAClD,OAAOV,EAAQkN,UAAUT,EAAOY,GAAO,SAAUJ,EAAGhL,GAClD,GAAiB,iBAANgL,EACT,MAAM,IAAIzF,UAAU,0CAGtB,OAAOyF,KACN/F,KAAK,OAKVlH,EAAQsN,SAAW,SAAUC,EAAMzE,GAIjC,SAAS0E,EAAKC,GAGZ,IAFA,IAAIzK,EAAQ,EAELA,EAAQyK,EAAI9M,QACE,KAAf8M,EAAIzK,GADiBA,KAM3B,IAFA,IAAIgB,EAAMyJ,EAAI9M,OAAS,EAEhBqD,GAAO,GACK,KAAbyJ,EAAIzJ,GADOA,KAIjB,OAAIhB,EAAQgB,EAAY,GACjByJ,EAAIxG,MAAMjE,EAAOgB,EAAMhB,EAAQ,GAjBxCuK,EAAOvN,EAAQ4M,QAAQW,GAAM7F,OAAO,GACpCoB,EAAK9I,EAAQ4M,QAAQ9D,GAAIpB,OAAO,GAwBhC,IALA,IAAIgG,EAAYF,EAAKD,EAAKP,MAAM,MAC5BW,EAAUH,EAAK1E,EAAGkE,MAAM,MACxBrM,EAASiN,KAAKC,IAAIH,EAAU/M,OAAQgN,EAAQhN,QAC5CmN,EAAkBnN,EAEbF,EAAI,EAAGA,EAAIE,EAAQF,IAC1B,GAAIiN,EAAUjN,KAAOkN,EAAQlN,GAAI,CAC/BqN,EAAkBrN,EAClB,MAIJ,IAAIsN,EAAc,GAElB,IAAStN,EAAIqN,EAAiBrN,EAAIiN,EAAU/M,OAAQF,IAClDsN,EAAY/G,KAAK,MAInB,OADA+G,EAAcA,EAAY7D,OAAOyD,EAAQ1G,MAAM6G,KAC5B5G,KAAK,MAG1BlH,EAAQgO,IAAM,IACdhO,EAAQiO,UAAY,IAEpBjO,EAAQkO,QAAU,SAAUnB,GAE1B,GADoB,iBAATA,IAAmBA,GAAc,IACxB,IAAhBA,EAAKpM,OAAc,MAAO,IAQ9B,IAPA,IAAIU,EAAO0L,EAAKzL,WAAW,GACvB6M,EAAmB,KAAT9M,EAGV2C,GAAO,EACPoK,GAAe,EAEV3N,EAAIsM,EAAKpM,OAAS,EAAGF,GAAK,IAAKA,EAGtC,GAAa,MAFbY,EAAO0L,EAAKzL,WAAWb,KAKnB,IAAK2N,EAAc,CACjBpK,EAAMvD,EACN,YAIJ2N,GAAe,EAInB,OAAa,IAATpK,EAAmBmK,EAAU,IAAM,IAEnCA,GAAmB,IAARnK,EAGN,IAGF+I,EAAK9F,MAAM,EAAGjD,IAkCvBhE,EAAQqO,SAAW,SAAUtB,EAAMuB,GACjC,IAAI3B,EAhCN,SAAkBI,GACI,iBAATA,IAAmBA,GAAc,IAC5C,IAGItM,EAHAuC,EAAQ,EACRgB,GAAO,EACPoK,GAAe,EAGnB,IAAK3N,EAAIsM,EAAKpM,OAAS,EAAGF,GAAK,IAAKA,EAClC,GAA2B,KAAvBsM,EAAKzL,WAAWb,IAKhB,IAAK2N,EAAc,CACjBpL,EAAQvC,EAAI,EACZ,YAEgB,IAATuD,IAGXoK,GAAe,EACfpK,EAAMvD,EAAI,GAId,OAAa,IAATuD,EAAmB,GAChB+I,EAAK9F,MAAMjE,EAAOgB,GAMjBqK,CAAStB,GAMjB,OAJIuB,GAAO3B,EAAEjF,QAAQ,EAAI4G,EAAI3N,UAAY2N,IACvC3B,EAAIA,EAAEjF,OAAO,EAAGiF,EAAEhM,OAAS2N,EAAI3N,SAG1BgM,GAGT3M,EAAQuO,QAAU,SAAUxB,GACN,iBAATA,IAAmBA,GAAc,IAS5C,IARA,IAAIyB,GAAY,EACZC,EAAY,EACZzK,GAAO,EACPoK,GAAe,EAGfM,EAAc,EAETjO,EAAIsM,EAAKpM,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACzC,IAAIY,EAAO0L,EAAKzL,WAAWb,GAE3B,GAAa,KAATY,GAaS,IAAT2C,IAGFoK,GAAe,EACfpK,EAAMvD,EAAI,GAGC,KAATY,GAIkB,IAAdmN,EAAiBA,EAAW/N,EAA2B,IAAhBiO,IAAmBA,EAAc,IACrD,IAAdF,IAGXE,GAAe,QAvBb,IAAKN,EAAc,CACjBK,EAAYhO,EAAI,EAChB,OAyBR,OAAkB,IAAd+N,IAA4B,IAATxK,GACP,IAAhB0K,GACgB,IAAhBA,GAAqBF,IAAaxK,EAAM,GAAKwK,IAAaC,EAAY,EAC7D,GAGF1B,EAAK9F,MAAMuH,EAAUxK,IAe9B,IAAI0D,EAA6B,MAApB,KAAKA,QAAQ,GAAa,SAAUzG,EAAK+B,EAAOqH,GAC3D,OAAOpJ,EAAIyG,OAAO1E,EAAOqH,IACvB,SAAUpJ,EAAK+B,EAAOqH,GAExB,OADIrH,EAAQ,IAAGA,EAAQ/B,EAAIN,OAASqC,GAC7B/B,EAAIyG,OAAO1E,EAAOqH,M,gDC9T3BtK,EAAOC,QAGP,SAAsBC,GACpB,IAAIoB,EAA4B,iBAAdpB,EAAyBA,EAAUqB,WAAW,GAAKrB,EACrE,OAAOoB,GAAQ,IAAMA,GAAQ,KAE7BA,GAAQ,IAAMA,GAAQ,K,6BCPxBtB,EAAOC,QAAU,CACf8C,UAAU,EACV6L,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,OAAQ,EAAQ,O,6BCNlBhP,EAAOC,QAUP,SAAqByC,GACnB,IAIIuM,EAJA/M,EAAQ,EACRc,EAAS,EACT9C,EAAYwC,EAAMpC,OAAO4B,GACzBgN,EAAQ,GAGZ,KAAOhP,KAAamD,GAClB4L,EAAO5L,EAAWnD,GAClB8C,GAAUiM,EAENA,EAAO,IACTjM,EAAS6K,KAAKsB,MAAMnM,EAASiM,GAAQA,GAGvCC,EAAMlM,GAAUd,EAChBhC,EAAYwC,EAAMpC,SAAS4B,GAG7B,MAAO,CACLc,OAAQA,EACRkM,MAAOA,IA3BX,IAAI7L,EAAa,CACf,IAAK,EACL,KAAM,I,gBCRR,IAAI+L,EAAS,EAAQ,GACjBC,EAAoB,EAAQ,KAC5BC,EAAK,EAAQ,IAAgB1C,EAC7B2C,EAAO,EAAQ,IAAkB3C,EACjC4C,EAAW,EAAQ,KACnBC,EAAS,EAAQ,IACjBC,EAAUN,EAAOO,OACjBC,EAAOF,EACPG,EAAQH,EAAQzO,UAChB6O,EAAM,KACNC,EAAM,KAENC,EAAc,IAAIN,EAAQI,KAASA,EAEvC,GAAI,EAAQ,MAAuBE,GAAe,EAAQ,EAAR,EAAoB,WAGpE,OAFAD,EAAI,EAAQ,EAAR,CAAkB,WAAY,EAE3BL,EAAQI,IAAQA,GAAOJ,EAAQK,IAAQA,GAA4B,QAArBL,EAAQI,EAAK,SAC/D,CACHJ,EAAU,SAAgBxC,EAAGN,GAC3B,IAAIqD,EAAOpG,gBAAgB6F,EACvBQ,EAAOV,EAAStC,GAChBiD,OAAY3H,IAANoE,EACV,OAAQqD,GAAQC,GAAQhD,EAAEkD,cAAgBV,GAAWS,EAAMjD,EACvDmC,EAAkBW,EAChB,IAAIJ,EAAKM,IAASC,EAAMjD,EAAErM,OAASqM,EAAGN,GACtCgD,GAAMM,EAAOhD,aAAawC,GAAWxC,EAAErM,OAASqM,EAAGgD,GAAQC,EAAMV,EAAO1O,KAAKmM,GAAKN,GACpFqD,EAAOpG,KAAOgG,EAAOH,IAS3B,IAPA,IAAIW,EAAQ,SAAU1Q,GACpBA,KAAO+P,GAAWJ,EAAGI,EAAS/P,EAAK,CACjC2Q,cAAc,EACdC,IAAK,WAAc,OAAOX,EAAKjQ,IAC/B6Q,IAAK,SAAUC,GAAMb,EAAKjQ,GAAO8Q,MAG5BC,EAAOnB,EAAKK,GAAOlP,EAAI,EAAGgQ,EAAK9P,OAASF,GAAI2P,EAAMK,EAAKhQ,MAChEmP,EAAMO,YAAcV,EACpBA,EAAQzO,UAAY4O,EACpB,EAAQ,GAAR,CAAuBT,EAAQ,SAAUM,GAG3C,EAAQ,GAAR,CAA0B,W,6BCxC1B,EAAQ,KAER,IAMIiB,EAAU,sIACVC,EAAW,mCAKf3Q,EAAQ4Q,aAAe,IAAIlB,OAAO,OAASgB,EAAU,IAAMC,EAAW,KACtE3Q,EAAQ6Q,IAAM,IAAInB,OAAO,OAASgB,EAAU,IAAMC,EAAW,yH,6BCf7D,EAAQ,IAER5Q,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,OAAOrO,EAAMP,QAAQ,IAAK4O,K,6BCL5B,EAAQ,IAER/Q,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,IAAIC,EAAOtO,EAAMP,QAAQ,IAAK4O,GAC1BE,EAAQvO,EAAMP,QAAQ,KAAM4O,GAEhC,IAAe,IAAXE,EACF,OAAOD,EAMT,OAAOA,EAAOC,EAAQD,EAAOC,I,uECf/B,IAAIC,EAAyBC,EAAQ,IAErClR,EAAQmR,YAAa,EACrBnR,EAAO,aAAc,EAErB,IA8FIoR,EA9FAC,EAA0BJ,EAAuBC,EAAQ,KAEzDI,EAAkBL,EAAuBC,EAAQ,KAEjDK,EAAiCN,EAAuBC,EAAQ,MAEhEM,EAAYP,EAAuBC,EAAQ,MAE3CO,EAASR,EAAuBC,EAAQ,IAExCQ,EAAaT,EAAuBC,EAAQ,KAe5CS,EAAe,SAAsBC,GACvC,IAAIC,GAAiB,EAAIL,EAAS,SAAa,GAAII,GAC/CE,EAAcD,EAAeC,YAC7BC,EAAQF,EAAeE,MACvBC,EAAWH,EAAeG,SA0B9B,OAxBIF,IACFD,EAAexT,MAAQyT,SAChBD,EAAeC,aAGpBC,IACFF,EAAe1T,MAAQ4T,SAChBF,EAAeE,OAGpBC,IAEFH,EAAeI,QAAU,SAIvBJ,EAAe1T,QACjB0T,EAAe1T,MAAQ+T,EAAa,GAAGhI,OAAO2H,EAAe1T,SAG3D0T,EAAexT,QACjBwT,EAAexT,MAAQ6T,EAAa,GAAGhI,OAAO2H,EAAexT,SAGxDwT,GAULM,EAAiB,SAAwBC,GAC3C,IAAIjU,EAAQiU,EAAKjU,MACbE,EAAQ+T,EAAK/T,MAEjB,OADWF,GAASA,EAAM,IAAME,GAASA,EAAM,IACnCR,KAKVwU,EAAatR,OAAOuR,OAAO,IAE3BC,EAAe,SAAsBX,GACvC,IAAIC,EAAiBF,EAAaC,GAE9B/T,EAAMsU,EAAeN,GACzB,OAAOQ,EAAWxU,KAAQ,GAWxB2U,EAAuD,oBAArBC,kBAAoC,YAAaA,iBAAiBzR,UACpG0R,EAA8B,oBAAXC,OACnBC,EAAeF,GAAaC,OAAOE,qBAEnCjH,EAAY,IAAIkH,QAwBpB,SAASC,EAAqBC,GAC5B,OAAOA,EAAc1T,KAAI,SAAU2T,GACjC,IAAIpV,EAAMoV,EAAMpV,IACZqV,EAASD,EAAMC,OACfC,EAAaF,EAAME,WACnBC,EAAQH,EAAMG,MACdrB,EAAQkB,EAAMlB,MAClB,OAAON,EAAM,QAAY4B,cAAc5B,EAAM,QAAY6B,SAAU,CACjE5T,IAAK7B,GACJsV,GAAc1B,EAAM,QAAY4B,cAAc,SAAU,CACzDzP,KAAM,aACNwP,MAAOA,EACPF,OAAQC,EACRpB,MAAOA,IACLN,EAAM,QAAY4B,cAAc,SAAU,CAC5CD,MAAOA,EACPF,OAAQA,EACRnB,MAAOA,QAOb,SAASG,EAAac,GACpB,IAAIO,EAAY,GACZC,EAAU,GASd,OARAR,EAAcS,SAAQ,SAAUC,GAC9B,OAAQA,EAAQN,MAAQG,EAAYC,GAASxM,KAAK0M,MAO7C,GAAGxJ,OAAOqJ,EAAWC,GAG9B,SAASG,EAAyBX,GAChC,OAAOA,EAAc1T,KAAI,SAAUsU,GACjC,IAAI/V,EAAM+V,EAAM/V,IACZuV,EAAQQ,EAAMR,MACdS,EAAYD,EAAMC,UACtB,OAAOpC,EAAM,QAAY4B,cAAc,SAAU,CAC/C3T,IAAK7B,EACLuV,MAAOA,EACPF,OAAQW,OAKd,SAASC,EAAsBd,GAC7B,OAAOA,EAAc1T,KAAI,SAAUyU,GACjC,IAAIlW,EAAMkW,EAAMlW,IACZuV,EAAQW,EAAMX,MACdY,EAASD,EAAMC,OACnB,OAAOvC,EAAM,QAAY4B,cAAc,SAAU,CAC/C3T,IAAK7B,EACLuV,MAAOA,EACPF,OAAQc,OAKd,SAASC,EAAuBC,EAAOC,GACrC,IAAIjB,EAASgB,EAAMhB,OACfC,EAAae,EAAMf,WACnBC,EAAQc,EAAMd,MACdrB,EAAQmC,EAAMnC,MAKlB,MAAO,YAFQoC,EAAS,qBAAuB,KAD/Bf,EAAQ,UAAaA,EAAQ,KAAQ,IAGV,YAJjCe,EAAShB,EAAaD,GAI+B,MAD/CnB,EAAQ,UAAaA,EAAQ,KAAQ,IAC8B,KASrF,IAAIqC,EAAwB,SAA+BC,EAAIC,GAC7D,IAAIC,QAxGc,IAAPnD,GAAwC,oBAAXuB,QAA0BA,OAAOE,uBACvEzB,EAAK,IAAIuB,OAAOE,sBAAqB,SAAU2B,GAC7CA,EAAQf,SAAQ,SAAUgB,GACxB,GAAI7I,EAAU8I,IAAID,EAAMjU,QAAS,CAC/B,IAAI8T,EAAK1I,EAAU0E,IAAImE,EAAMjU,SAEzBiU,EAAME,gBAAkBF,EAAMG,kBAAoB,KACpDxD,EAAGyD,UAAUJ,EAAMjU,QACnBoL,EAAS,OAAW6I,EAAMjU,QAC1B8T,WAIL,CACDQ,WAAY,WAIT1D,GA6FP,OALImD,IACFA,EAASQ,QAAQV,GACjBzI,EAAU2E,IAAI8D,EAAIC,IAGb,WACLC,EAASM,UAAUR,GACnBzI,EAAS,OAAWyI,KAIpBW,EAAc,SAAqBpD,GAGrC,IAAI/T,EAAM+T,EAAM/T,IAAM,QAAW+T,EAAM/T,IAAM,KAAQ,UAEjDkU,EAAQH,EAAMG,MAAQ,UAAaH,EAAMG,MAAQ,KAAQ,GACzDmB,EAAStB,EAAMsB,OAAS,WAActB,EAAMsB,OAAS,KAAQ,GAC7D1W,EAAQoV,EAAMpV,MAAQ,UAAaoV,EAAMpV,MAAQ,KAAQ,GACzDwB,EAAM4T,EAAM5T,IAAM,QAAW4T,EAAM5T,IAAM,KAAQ,UAEjDiX,EAAQrD,EAAMqD,MAAQ,UAAarD,EAAMqD,MAAQ,KAAQ,GACzDC,EAAStD,EAAMsD,OAAS,WAActD,EAAMsD,OAAS,KAAQ,GAC7DC,EAAcvD,EAAMuD,YAAc,gBAAmBvD,EAAMuD,YAAc,KAAQ,GACjFlD,EAAUL,EAAMK,QAAU,YAAeL,EAAMK,QAAU,KAAQ,GACjEmD,EAAYxD,EAAMwD,UAAY,cAAiBxD,EAAMwD,UAAY,KAAQ,GAE7E,MAAO,YAD+BxD,EAAMoB,cAlCvB1T,KAAI,SAAUoU,GACjC,OAAQA,EAAQP,WAAac,EAAuBP,GAAS,GAAQ,IAAMO,EAAuBP,MACjGxM,KAAK,IAiCuB,QAAU+K,EAAUgD,EAAQC,EAASnD,EAAQmB,EAASrV,EAAMG,EAAMxB,EAAQ2Y,EAAcC,EAAY,+HAMjIC,EAAc,SAAqBC,GACrC,IAAIzX,EAAMyX,EAAMzX,IACZmV,EAAgBsC,EAAMtC,cACtBuC,EAAkBD,EAAMC,gBACxBC,EAAcF,EAAME,YAEpBC,EAAYhE,EAAM,QAAY4B,cAAcqC,GAAK,EAAIlE,EAAS,SAAa,CAC7E3T,IAAKA,GACJ2X,IAEH,OAAOxC,EAAcrS,OAAS,EAAI8Q,EAAM,QAAY4B,cAAc,UAAW,KAAMkC,EAAgBvC,GAAgByC,GAAaA,GAG9HC,EAAMjE,EAAM,QAAYkE,YAAW,SAAU/D,EAAOgE,GACtD,IAAI7D,EAAQH,EAAMG,MACdmB,EAAStB,EAAMsB,OACfrV,EAAM+T,EAAM/T,IACZgY,EAAQjE,EAAMiE,MACdC,EAASlE,EAAMkE,OACfC,EAAUnE,EAAMmE,QAChB9D,EAAUL,EAAMK,QAChBmD,EAAYxD,EAAMwD,UAClBY,GAAa,EAAIzE,EAA8B,SAAaK,EAAO,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,UAAW,UAAW,cAC3I,OAAOH,EAAM,QAAY4B,cAAc,OAAO,EAAI7B,EAAS,SAAa,CACtEO,MAAOA,EACPmB,OAAQA,EACRrV,IAAKA,GACJmY,EAAY,CACbF,OAAQA,EACRC,QAASA,EACTH,IAAKA,EACL3D,QAASA,EACTmD,UAAWA,EACXS,OAAO,EAAIrE,EAAS,SAAa,CAC/B1O,SAAU,WACVmT,IAAK,EACL9U,KAAM,EACN8T,MAAO,OACPC,OAAQ,OACRgB,UAAW,QACXC,eAAgB,UACfN,SAIPH,EAAIU,UAAY,CACdP,MAAOnE,EAAU,QAAY2E,OAC7BN,QAASrE,EAAU,QAAY4E,KAC/BR,OAAQpE,EAAU,QAAY4E,MAGhC,IAAIC,EAEJ,SAAUC,GAGR,SAASD,EAAM3E,GACb,IAAI6E,GAEJA,EAAQD,EAAiB1V,KAAK8I,KAAMgI,IAAUhI,MAGxC8M,WAAahE,GAAaH,EAAaX,GAC7C6E,EAAME,WAA+B,UAAlB/E,EAAMK,SAAuBL,EAAMI,SACtDyE,EAAMG,cAAgBH,EAAME,aAAe/E,EAAMiF,QACjDJ,EAAMK,cAAgBtE,GAA4BI,IAAiB6D,EAAME,aAAeF,EAAMC,WAC9F,IAAIK,EAAYN,EAAME,YAAcjE,IAAcF,IAA6BiE,EAAMK,cAUrF,OATAL,EAAMO,MAAQ,CACZD,UAAWA,EACXE,WAAW,EACXC,WAAW,EACXL,QAASJ,EAAMC,YAAc9E,EAAMiF,QAErCJ,EAAMU,SAAW1F,EAAM,QAAY2F,YACnCX,EAAMY,kBAAoBZ,EAAMY,kBAAkBC,MAAK,EAAIjG,EAAuB,SAAaoF,IAC/FA,EAAMc,UAAYd,EAAMc,UAAUD,MAAK,EAAIjG,EAAuB,SAAaoF,IACxEA,GAtBT,EAAInF,EAAe,SAAaiF,EAAOC,GAyBvC,IAAIgB,EAASjB,EAAMvV,UAkPnB,OAhPAwW,EAAOC,kBAAoB,WAOzB,GANI7N,KAAKoN,MAAMD,WAA+C,mBAA3BnN,KAAKgI,MAAM8F,aAC5C9N,KAAKgI,MAAM8F,YAAY,CACrBC,UAAWpF,EAAa3I,KAAKgI,SAI7BhI,KAAK+M,WAAY,CACnB,IAAIiB,EAAMhO,KAAKuN,SAASU,QAEpBD,GAAOA,EAAIE,UACblO,KAAKyN,sBAKXG,EAAOO,qBAAuB,WACxBnO,KAAKoO,kBACPpO,KAAKoO,oBAKTR,EAAOD,UAAY,SAAmB3B,GACpC,IAAIqC,EAASrO,KAETA,KAAKkN,cAAgBlB,IACvBhM,KAAKoO,iBAAmB5D,EAAsBwB,GAAK,WACjD,IAAIsC,EAAe3F,EAAa0F,EAAOrG,OAElCqG,EAAOjB,MAAMD,WAAiD,mBAA7BkB,EAAOrG,MAAM8F,aACjDO,EAAOrG,MAAM8F,YAAY,CACvBC,UAAWO,IAQfD,EAAOE,SAAS,CACdpB,WAAW,IACV,WACD,OAAOkB,EAAOE,SAAS,CACrBlB,UAAWiB,EAGXhB,YAAae,EAAOd,SAASU,QAAQO,qBAO/CZ,EAAOH,kBAAoB,WAjSD,IAA+BzF,EACrDC,EAEAhU,EAHqD+T,EAkSjChI,KAAKgI,MAjSzBC,EAAiBF,EAAaC,GAE9B/T,EAAMsU,EAAeN,GACzBQ,EAAWxU,IAAO,EA+RhB+L,KAAKuO,SAAS,CACZlB,WAAW,IAGTrN,KAAKgI,MAAMkE,QACblM,KAAKgI,MAAMkE,UAIf0B,EAAOa,OAAS,WACd,IAAIC,EAAgB3G,EAAa/H,KAAKgI,OAClCpV,EAAQ8b,EAAc9b,MACtBwB,EAAMsa,EAActa,IACpBtB,EAAY4b,EAAc5b,UAC1B6b,EAAsBD,EAAczC,MACpCA,OAAgC,IAAxB0C,EAAiC,GAAKA,EAC9CC,EAAwBF,EAAcG,SACtCA,OAAqC,IAA1BD,EAAmC,GAAKA,EACnDE,EAAwBJ,EAAcK,iBACtCA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAuBN,EAAcM,qBACrCza,EAAQma,EAAcna,MACtBE,EAAQia,EAAcja,MACtBwa,EAAkBP,EAAcO,gBAChCC,EAAiBR,EAAcQ,eAC/BC,EAAMT,EAAcS,IACpBC,EAAWV,EAAcU,SACzB/G,EAAUqG,EAAcrG,QACxBmD,EAAYkD,EAAclD,UAE1B6D,GAAqC,IAAtBrP,KAAKoN,MAAMH,QAAoBjN,KAAKoN,MAAMC,UACzDiC,GAAqC,IAAtBtP,KAAKoN,MAAMH,SAAoBjN,KAAKoN,MAAME,UACzDiC,GAAa,EAAI3H,EAAS,SAAa,CACzC4H,QAASH,EAAe,EAAI,EAC5BI,WAAYH,EAAe,WAAaJ,EAAiB,KAAO,QAC/DL,GACCa,EAAqC,kBAApBT,EAAgC,YAAcA,EAC/DU,EAAiB,CACnBC,gBAAiBV,EAAiB,MAEhCW,GAAwB,EAAIjI,EAAS,SAAa,CACpD4H,QAASxP,KAAKoN,MAAMC,UAAY,EAAI,GACnCiC,GAAgBK,EAAgB,GAAId,EAAU,GAAIE,GACjDe,EAAwB,CAC1Bld,MAAOA,EACPwB,IAAM4L,KAAKoN,MAAMD,UAAkB,GAAN/Y,EAC7B6X,MAAO4D,EACP/c,UAAWkc,GAGb,GAAIza,EAAO,CACT,IAAI6U,EAAgB7U,EAChB6S,EAAQgC,EAAc,GAC1B,OAAOvB,EAAM,QAAY4B,cAAc0F,EAAK,CAC1Crc,WAAYA,GAAwB,IAAM,wBAC1CmZ,OAAO,EAAIrE,EAAS,SAAa,CAC/B1O,SAAU,WACV6W,SAAU,UACT9D,GACHD,IAAKhM,KAAK2N,UACV7X,IAAK,SAAWka,KAAKC,UAAU7I,EAAMkC,SACpCzB,EAAM,QAAY4B,cAAc0F,EAAK,CACtClD,MAAO,CACLZ,MAAO,OACP6E,cAAe,IAAM9I,EAAM+I,YAAc,OAEzCT,GAAW7H,EAAM,QAAY4B,cAAc0F,EAAK,CAClDvc,MAAOA,EACPqZ,OAAO,EAAIrE,EAAS,SAAa,CAC/BqH,gBAAiBS,EACjBxW,SAAU,WACVmT,IAAK,EACL+D,OAAQ,EACRZ,QAAUxP,KAAKoN,MAAMC,UAAgB,EAAJ,EACjC7V,MAAO,EACPD,KAAM,GACL+X,GAAgBK,KACjBvI,EAAMgD,QAAUvC,EAAM,QAAY4B,cAAcgC,EAAa,CAC/DxX,IAAKmT,EAAMgD,OACXwB,YAAakE,EACb1G,cAAeA,EACfuC,gBAAiBzB,IACf9C,EAAM6C,WAAapC,EAAM,QAAY4B,cAAcgC,EAAa,CAClExX,IAAKmT,EAAM6C,UACX2B,YAAakE,EACb1G,cAAeA,EACfuC,gBAAiB5B,IACf/J,KAAKoN,MAAMD,WAAatF,EAAM,QAAY4B,cAAc,UAAW,KAAMN,EAAqBC,GAAgBvB,EAAM,QAAY4B,cAAcqC,EAAK,CACrJ1X,IAAKA,EACLxB,MAAOA,EACPuV,MAAOf,EAAMe,MACblU,IAAKmT,EAAMnT,IACXsX,YAAavL,KAAKgI,MAAMuD,YACxBjC,OAAQlC,EAAMkC,OACd2C,MAAOsD,EACPvD,IAAKhM,KAAKuN,SACVrB,OAAQlM,KAAKyN,kBACbtB,QAASnM,KAAKgI,MAAMmE,QACpBiD,SAAUA,EACV/G,QAASA,EACTmD,UAAWA,KACRxL,KAAKgN,aAAenF,EAAM,QAAY4B,cAAc,WAAY,CACnE4G,wBAAyB,CACvBC,OAAQlF,GAAY,EAAIxD,EAAS,SAAa,CAC5CxT,IAAKA,EACLxB,MAAOA,EACPyV,QAASA,GACRjB,EAAO,CACRgC,cAAeA,SAMvB,GAAI3U,EAAO,CACT,IAAI8b,EAAiB9b,EACjB+b,EAASD,EAAe,GACxBE,GAAW,EAAI7I,EAAS,SAAa,CACvC1O,SAAU,WACV6W,SAAU,SACVW,QAAS,eACTrF,MAAOmF,EAAOnF,MACdC,OAAQkF,EAAOlF,QACdW,GAMH,MAJsB,YAAlBA,EAAMyE,gBACDD,EAASC,QAGX7I,EAAM,QAAY4B,cAAc0F,EAAK,CAC1Crc,WAAYA,GAAwB,IAAM,wBAC1CmZ,MAAOwE,EACPzE,IAAKhM,KAAK2N,UACV7X,IAAK,SAAWka,KAAKC,UAAUO,EAAOlH,SACrCoG,GAAW7H,EAAM,QAAY4B,cAAc0F,EAAK,CACjDvc,MAAOA,EACPqZ,OAAO,EAAIrE,EAAS,SAAa,CAC/BqH,gBAAiBS,EACjBrE,MAAOmF,EAAOnF,MACdmE,QAAUxP,KAAKoN,MAAMC,UAAgB,EAAJ,EACjC/B,OAAQkF,EAAOlF,QACdgE,GAAgBK,KACjBa,EAAOpG,QAAUvC,EAAM,QAAY4B,cAAcgC,EAAa,CAChExX,IAAKuc,EAAOpG,OACZwB,YAAakE,EACb1G,cAAemH,EACf5E,gBAAiBzB,IACfsG,EAAOvG,WAAapC,EAAM,QAAY4B,cAAcgC,EAAa,CACnExX,IAAKuc,EAAOvG,UACZ2B,YAAakE,EACb1G,cAAemH,EACf5E,gBAAiB5B,IACf/J,KAAKoN,MAAMD,WAAatF,EAAM,QAAY4B,cAAc,UAAW,KAAMN,EAAqBoH,GAAiB1I,EAAM,QAAY4B,cAAcqC,EAAK,CACtJ1X,IAAKA,EACLxB,MAAOA,EACPyY,MAAOmF,EAAOnF,MACdC,OAAQkF,EAAOlF,OACfnD,MAAOqI,EAAOrI,MACdlU,IAAKuc,EAAOvc,IACZsX,YAAavL,KAAKgI,MAAMuD,YACxBjC,OAAQkH,EAAOlH,OACf2C,MAAOsD,EACPvD,IAAKhM,KAAKuN,SACVrB,OAAQlM,KAAKyN,kBACbtB,QAASnM,KAAKgI,MAAMmE,QACpBiD,SAAUA,EACV/G,QAASA,EACTmD,UAAWA,KACRxL,KAAKgN,aAAenF,EAAM,QAAY4B,cAAc,WAAY,CACnE4G,wBAAyB,CACvBC,OAAQlF,GAAY,EAAIxD,EAAS,SAAa,CAC5CxT,IAAKA,EACLxB,MAAOA,EACPyV,QAASA,GACRmI,EAAQ,CACTpH,cAAemH,SAMvB,OAAO,MAGF5D,EA5QT,CA6QE9E,EAAM,QAAY8I,WAEpBhE,EAAMiE,aAAe,CACnB3D,QAAQ,EACRiC,eAAgB,IAChB9a,IAAK,GACL+a,IAAK,MAGL9G,QAAS,QAGX,IAAIwI,EAAc/I,EAAU,QAAYgJ,MAAM,CAC5CzF,MAAOvD,EAAU,QAAYiJ,OAAOC,WACpC1F,OAAQxD,EAAU,QAAYiJ,OAAOC,WACrC/c,IAAK6T,EAAU,QAAYmJ,OAAOD,WAClC1H,OAAQxB,EAAU,QAAYmJ,OAAOD,WACrC5G,OAAQtC,EAAU,QAAYmJ,OAC9BhH,UAAWnC,EAAU,QAAYmJ,OACjCC,QAASpJ,EAAU,QAAYmJ,OAC/B1H,WAAYzB,EAAU,QAAYmJ,OAClCzH,MAAO1B,EAAU,QAAYmJ,SAG3BE,EAAcrJ,EAAU,QAAYgJ,MAAM,CAC5CX,YAAarI,EAAU,QAAYiJ,OAAOC,WAC1C/c,IAAK6T,EAAU,QAAYmJ,OAAOD,WAClC1H,OAAQxB,EAAU,QAAYmJ,OAAOD,WACrC7I,MAAOL,EAAU,QAAYmJ,OAAOD,WACpC5G,OAAQtC,EAAU,QAAYmJ,OAC9BhH,UAAWnC,EAAU,QAAYmJ,OACjCC,QAASpJ,EAAU,QAAYmJ,OAC/B1H,WAAYzB,EAAU,QAAYmJ,OAClCzH,MAAO1B,EAAU,QAAYmJ,SAG/BtE,EAAMH,UAAY,CAChBtE,YAAa2I,EACb1I,MAAOgJ,EACP1c,MAAOqT,EAAU,QAAYsJ,UAAU,CAACP,EAAa/I,EAAU,QAAYuJ,QAAQR,KACnFtc,MAAOuT,EAAU,QAAYsJ,UAAU,CAACD,EAAarJ,EAAU,QAAYuJ,QAAQF,KACnFlE,OAAQnF,EAAU,QAAYvJ,KAC9B2Q,eAAgBpH,EAAU,QAAYiJ,OACtCne,MAAOkV,EAAU,QAAYmJ,OAC7B7c,IAAK0T,EAAU,QAAYmJ,OAC3Bne,UAAWgV,EAAU,QAAYsJ,UAAU,CAACtJ,EAAU,QAAYmJ,OAAQnJ,EAAU,QAAY2E,SAEhGrE,SAAUN,EAAU,QAAYvJ,KAChCgN,YAAazD,EAAU,QAAYsJ,UAAU,CAACtJ,EAAU,QAAYmJ,OAAQnJ,EAAU,QAAYvJ,OAClG0N,MAAOnE,EAAU,QAAY2E,OAC7BoC,SAAU/G,EAAU,QAAY2E,OAChCsC,iBAAkBjH,EAAU,QAAY2E,OACxCuC,qBAAsBlH,EAAU,QAAYmJ,OAC5ChC,gBAAiBnH,EAAU,QAAYsJ,UAAU,CAACtJ,EAAU,QAAYmJ,OAAQnJ,EAAU,QAAYvJ,OACtG2N,OAAQpE,EAAU,QAAY4E,KAC9BP,QAASrE,EAAU,QAAY4E,KAC/BoB,YAAahG,EAAU,QAAY4E,KACnCyC,IAAKrH,EAAU,QAAYmJ,OAC3B7B,SAAUtH,EAAU,QAAYmJ,OAChC5I,QAASP,EAAU,QAAYwJ,MAAM,CAAC,OAAQ,OAAQ,UACtD9F,UAAW1D,EAAU,QAAYvJ,MAEnC,IAAIgT,EAAW5E,EACfvW,EAAO,QAAcmb,G,6BCnnBrB,EAAQ,IAAR,CAA0B,SAAS,SAAUC,GAC3C,OAAO,WACL,OAAOA,EAAWxR,KAAM,KAAM,GAAI,S,gBCJtC,IAAIyR,EAAU,EAAQ,GAClBC,EAAQ,EAAQ,GAChBC,EAAU,EAAQ,IAClBC,EAAO,KAEPJ,EAAa,SAAUP,EAAQhK,EAAKxK,EAAW5D,GACjD,IAAIgZ,EAAInb,OAAOib,EAAQV,IACnBa,EAAK,IAAM7K,EAEf,MADkB,KAAdxK,IAAkBqV,GAAM,IAAMrV,EAAY,KAAO/F,OAAOmC,GAAOvB,QAAQsa,EAAM,UAAY,KACtFE,EAAK,IAAMD,EAAI,KAAO5K,EAAM,KAErC9Q,EAAOC,QAAU,SAAU2b,EAAMC,GAC/B,IAAIC,EAAI,GACRA,EAAEF,GAAQC,EAAKR,GACfC,EAAQA,EAAQS,EAAIT,EAAQU,EAAIT,GAAM,WACpC,IAAInb,EAAO,GAAGwb,GAAM,KACpB,OAAOxb,IAASA,EAAKuI,eAAiBvI,EAAK6M,MAAM,KAAKrM,OAAS,KAC7D,SAAUkb,K,6BCehB,SAASG,EAAmBvO,GAC1B,OAWF,SAA4BA,GAC1B,GAAI5C,MAAMoR,QAAQxO,GAAM,CACtB,IAAK,IAAIhN,EAAI,EAAGyb,EAAO,IAAIrR,MAAM4C,EAAI9M,QAASF,EAAIgN,EAAI9M,OAAQF,IAC5Dyb,EAAKzb,GAAKgN,EAAIhN,GAGhB,OAAOyb,GAjBFC,CAAmB1O,IAO5B,SAA0B2O,GACxB,GAAIC,OAAOC,YAAYvb,OAAOqb,IAAkD,uBAAzCrb,OAAOC,UAAUub,SAASzb,KAAKsb,GAAgC,OAAOvR,MAAM0C,KAAK6O,GARtFI,CAAiB/O,IAGrD,WACE,MAAM,IAAIjG,UAAU,mDAJuCiV,GA/B7D,EAAQ,KAER,EAAQ,IAER,EAAQ,IAER,EAAQ,KAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,KAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAwBR,IAAIC,EAAQ,EAAQ,KAEhBC,EAAU,EAAQ,KAElBxV,EAAQ,EAAQ,KAEhByV,EAAY,EAAQ,IAEpBC,EAAkB,EAAQ,KAE1BC,EAAY,EAAQ,KAEpBC,EAAe,EAAQ,KAEvBC,EAAa,EAAQ,KAErBC,EAAgB,EAAQ,KAExBC,EAAiB,EAAQ,KAEzBC,EAAiB,EAAQ,KAEzBC,EAAmB,EAAQ,KAE3BC,EAAU,EAAQ,KAElBC,EAAWvc,OAAO0P,KAAK2M,GAEvBG,EAAgB,SAAuB3L,GACzC,IAAI/T,EAAM+T,EAAMhR,QAAUgR,EAAMnV,UAAY,GACxC+gB,EAAgB5L,EAAM4L,cAE1B,GAAI5L,EAAM6L,cAAgB7L,EAAM8L,gBAC9B,MAAM,IAAIpU,MAAM,sEAGlB,IAAIqU,EAAYjB,EAAMU,EAAkBxL,EAAM+L,WAE1CC,EADU,CAAC,CAACzW,EAAOqW,IAAgBtT,OAAO0H,EAAMiM,SAAW,IAC1CC,OAAOC,EAAmBpB,KAC3CqB,EAASJ,EAAOzW,MAAMtJ,GACtBogB,EAAcvB,EAAM9K,EAAO,CAC7B+L,UAAWA,EACXO,YAAahB,EAAec,KAE1BG,EAaN,SAA6BvM,GAC3B,IAAIiM,EAAU,CAACZ,EAAeJ,KAC1Ba,EAAkB9L,EAAM8L,gBAExB9L,EAAM6L,eACRC,EAAkBJ,EAAS7Q,QAAO,SAAU7I,GAC1C,MAAgB,SAATA,IAAyD,IAAtCgO,EAAM6L,aAAavb,QAAQ0B,OAIzD,IAAIwa,EAAgBxM,EAAMyM,iBAAmB,SAAW,SAEpDX,GAAmBA,EAAgB/c,OAAS,GAC9Ckd,EAAQ7W,KAAK+V,EAAauB,OAAOZ,EAAiBU,IAGhDxM,EAAM2M,WACRV,EAAQ7W,KAAK+V,EAAayB,WAAW5M,EAAM2M,UAAWH,IAGxD,IAAIK,GAAc7M,EAAM8M,aAAe9M,EAAM+M,SACzCC,GAAiBhN,EAAMuM,YAAc,IAAIU,MAAK,SAAUC,GAE1D,OADajU,MAAMoR,QAAQ6C,GAAQA,EAAK,GAAKA,GAC/BC,WAAa1B,EAAQ2B,cAGjCP,IAAeG,GACjBf,EAAQ7W,KAAK8V,GAGf,OAAOlL,EAAMuM,WAAaN,EAAQ3T,OAAO0H,EAAMuM,YAAcN,EA3C5CoB,CAAoBrN,GAEjCsN,EAAiBtB,EAAOuB,QAAQnB,GAChCoB,EAAMjB,EAAWL,QAAO,SAAU/e,EAAMsgB,GAC1C,OAAOA,EAAOtgB,EAAMkf,KACnBiB,GACH,OAAOlC,EAAWoC,EAAKnB,IAGzB,SAASF,EAAkBH,EAAQyB,GACjC,OAAOxU,MAAMoR,QAAQoD,GAAUzB,EAAO0B,IAAI9W,MAAMoV,EAAQ5B,EAAmBqD,IAAWzB,EAAO0B,IAAID,GAoCnG9B,EAAc/C,aAAe,CAC3BmD,UAAW,GACXe,YAAY,EACZC,UAAU,EACVY,WAAW,EACXC,cAAc,EACdC,iBAAkBtC,EAClBgB,WAAY,GACZN,QAAS,GACTL,cAAe,IAEjBD,EAAcnH,UAAY,CACxB1Z,UAAWkgB,EAAU/B,OACrBja,OAAQgc,EAAU/B,OAClBpe,SAAUmgB,EAAU/B,OACpB0E,UAAW3C,EAAUzU,KACrBqX,aAAc5C,EAAUzU,KACxBuW,WAAY9B,EAAUzU,KACtBwW,SAAU/B,EAAUzU,KACpBoW,UAAW3B,EAAUtG,KACrBmH,aAAcb,EAAU3B,QAAQ2B,EAAU1B,MAAMoC,IAChDI,gBAAiBd,EAAU3B,QAAQ2B,EAAU1B,MAAMoC,IACnDmC,iBAAkB7C,EAAU5B,UAAU,CAAC4B,EAAUtG,KAAMsG,EAAUzU,OACjEuX,WAAY9C,EAAU5B,UAAU,CAAC4B,EAAUtG,KAAMsG,EAAU/B,SAC3D8E,kBAAmB/C,EAAUtG,KAC7B6H,WAAYvB,EAAU3B,QAAQ2B,EAAUtG,MACxC+H,iBAAkBzB,EAAUzU,KAC5BwV,UAAWf,EAAUvG,OACrBwH,QAASjB,EAAUlS,MACnB8S,cAAeZ,EAAUvG,QAE3BkH,EAAcqC,MAAQtC,EACtBC,EAAcI,UAAYP,EAC1BG,EAAcJ,eAAiBA,EAC/Bpd,EAAOC,QAAUud,G,6BC/KjB,EAAQ,IAER,EAAQ,IAER,IAAIsC,EAAS,EAAQ,KAEjBC,EAAO,EAAQ,KAEfC,EAAQ,EAAQ,KAEhBC,EAAS,EAAQ,KAEjBnF,EAAS,EAAQ,KAEjBoF,EAAQ,EAAQ,KAIpBlgB,EAAOC,QA+BP,SAAS2c,IACP,IAAIuD,EAAY,GAChB,IAAIC,EAAeH,IACnB,IAAII,EAAY,GAChB,IAAIC,GAAS,EACb,IAAIC,GAAe,EAGnBC,EAAU5hB,KAoFV,SAAce,EAAK+C,GACjB,GAAIoY,EAAOnb,GAET,OAAyB,IAArBgB,UAAUC,QACZ6f,EAAe,OAAQH,GACvBD,EAAU1gB,GAAO+C,EACV8d,GAKFva,EAAIlF,KAAKsf,EAAW1gB,IAAQ0gB,EAAU1gB,IAAQ,KAKvD,GAAIA,EAGF,OAFA8gB,EAAe,OAAQH,GACvBD,EAAY1gB,EACL6gB,EAKT,OAAOH,GAzGTG,EAAUE,OAASA,EAGnBF,EAAUL,UAAYA,EACtBK,EAAUjB,IAgHV,SAAa7c,GACX,IAAIG,EAGJ,GAFA4d,EAAe,MAAOH,GAElB5d,cAEG,GAAqB,mBAAVA,EAChBie,EAAUlY,MAAM,KAAM9H,eACjB,IAAqB,iBAAV+B,EAOhB,MAAM,IAAI6G,MAAM,+BAAiC7G,EAAQ,KANrD,WAAYA,EACdke,EAAQle,GAERme,EAAUne,GAMVG,IACFwd,EAAUxd,SAAWid,EAAOO,EAAUxd,UAAY,GAAIA,IAGxD,OAAO2d,EAEP,SAASK,EAAU7b,GACjB4b,EAAQ5b,EAAO8Y,SAEX9Y,EAAOnC,WACTA,EAAWid,EAAOjd,GAAY,GAAImC,EAAOnC,WAI7C,SAASie,EAAIpe,GACX,GAAqB,mBAAVA,EACTie,EAAUje,OACL,IAAqB,iBAAVA,EAOhB,MAAM,IAAI6G,MAAM,+BAAiC7G,EAAQ,KANrD,WAAYA,EACdie,EAAUlY,MAAM,KAAM/F,GAEtBme,EAAUne,IAOhB,SAASke,EAAQ9C,GACf,IAAIld,EACAsB,EAEJ,GAAI4b,aAEG,MAAuB,iBAAZA,GAAwB,WAAYA,GAQpD,MAAM,IAAIvU,MAAM,oCAAsCuU,EAAU,KAJhE,IAHAld,EAASkd,EAAQld,OACjBsB,GAAS,IAEAA,EAAQtB,GACfkgB,EAAIhD,EAAQ5b,KAOlB,SAASye,EAAUrB,EAAQ5c,GACzB,IAAIgS,EAcR,SAAc4K,GACZ,IAEI5K,EAFA9T,EAASuf,EAAUvf,OACnBsB,GAAS,EAGb,OAASA,EAAQtB,GAGf,IAFA8T,EAAQyL,EAAUje,IAER,KAAOod,EACf,OAAO5K,EAvBG3V,CAAKugB,GAEb5K,GACEwL,EAAMxL,EAAM,KAAOwL,EAAMxd,KAC3BA,EAAQod,EAAOpL,EAAM,GAAIhS,IAG3BgS,EAAM,GAAKhS,GAEXyd,EAAUlZ,KAAKC,EAAMnG,KAAKJ,cAvLhC6f,EAAUpZ,MA8MV,SAAe2Z,GACb,IACIC,EADAC,EAAOjB,EAAMe,GAMjB,GAJAL,IAEAQ,EAAa,QADbF,EAASR,EAAUQ,QAGfG,EAAQH,GACV,OAAO,IAAIA,EAAOzgB,OAAO0gB,GAAOA,GAAM7Z,QAGxC,OAAO4Z,EAAOzgB,OAAO0gB,GAAOA,IAxN9BT,EAAU1G,UAmRV,SAAmB9a,EAAM+hB,GACvB,IACIK,EADAH,EAAOjB,EAAMe,GAOjB,GALAL,IAEAW,EAAe,YADfD,EAAWZ,EAAUY,UAErBE,EAAWtiB,GAEPmiB,EAAQC,GACV,OAAO,IAAIA,EAASpiB,EAAMiiB,GAAMM,UAGlC,OAAOH,EAASpiB,EAAMiiB,IA9RxBT,EAAUjW,IAAMA,EAChBiW,EAAUpB,QA+PV,SAAiBpgB,EAAMiiB,GACrB,IACIjc,EADA+S,GAAW,EAIf,OAFAxN,EAAIvL,EAAMiiB,GAIV,SAAcO,EAAK3f,GACjBkW,GAAW,EACXgI,EAAKyB,GACLxc,EAASnD,KANX4f,EAAW,UAAW,MAAO1J,GACtB/S,GAnQTwb,EAAUnX,QAAUA,EACpBmX,EAAUkB,YAoUV,SAAqBX,GACnB,IACIE,EADAlJ,GAAW,EAQf,OANA2I,IACAQ,EAAa,cAAeV,EAAUQ,QACtCK,EAAe,cAAeb,EAAUY,UAExC/X,EADA4X,EAAOjB,EAAMe,IAKb,SAAcS,GACZzJ,GAAW,EACXgI,EAAKyB,MALPC,EAAW,cAAe,UAAW1J,GAC9BkJ,GA1UT,OAAOT,EAIP,SAASA,IAKP,IAJA,IAAImB,EAAc/E,IACdhc,EAASuf,EAAUvf,OACnBsB,GAAS,IAEJA,EAAQtB,GACf+gB,EAAYpC,IAAI9W,MAAM,KAAM0X,EAAUje,IAIxC,OADAyf,EAAY/iB,KAAKkhB,GAAO,EAAM,GAAIO,IAC3BsB,EAaT,SAASjB,IACP,IAAIkB,EACAtC,EACA3c,EACAkf,EAEJ,GAAIvB,EACF,OAAOE,EAGT,OAASD,EAAcJ,EAAUvf,QAE/B0e,GADAsC,EAASzB,EAAUI,IACH,GAEF,MAEE,KAHhB5d,EAAUif,EAAO,OAOD,IAAZjf,IACFif,EAAO,QAAKpZ,GAKa,mBAF3BqZ,EAAcvC,EAAO7W,MAAM+X,EAAWoB,EAAO1a,MAAM,MAGjDkZ,EAAab,IAAIsC,IAMrB,OAFAvB,GAAS,EACTC,EAAcuB,IACPtB,EA2JT,SAASjW,EAAIvL,EAAMiiB,EAAM1M,GASvB,GARA+M,EAAWtiB,GACX0hB,IAEKnM,GAAsB,mBAAT0M,IAChB1M,EAAK0M,EACLA,EAAO,OAGJ1M,EACH,OAAO,IAAIwN,QAAQC,GAKrB,SAASA,EAASnV,EAASoV,GACzB7B,EAAa7V,IAAIvL,EAAMghB,EAAMiB,IAE7B,SAAcO,EAAK3f,EAAMof,GACvBpf,EAAOA,GAAQ7C,EAEXwiB,EACFS,EAAOT,GACE3U,EACTA,EAAQhL,GAER0S,EAAG,KAAM1S,EAAMof,MAbrBe,EAAS,KAAMzN,GA6DjB,SAASlL,EAAQ0X,EAAKxM,GAKpB,GAJAmM,IACAQ,EAAa,UAAWV,EAAUQ,QAClCK,EAAe,UAAWb,EAAUY,WAE/B7M,EACH,OAAO,IAAIwN,QAAQC,GAKrB,SAASA,EAASnV,EAASoV,GACzB,IAAIhB,EAAOjB,EAAMe,GACjBmB,EAAS3X,IAAIiW,EAAW,CACtBS,KAAMA,IAGR,SAAcO,GACRA,EACFS,EAAOT,GACE3U,EACTA,EAAQoU,GAER1M,EAAG,KAAM0M,MAdfe,EAAS,KAAMzN,IAnWFqI,GAAU8D,SAC3B,IAAIxZ,EAAQ,GAAGA,MACXjB,EAAM,GAAGnF,eAGTohB,EAAWjC,IAASV,KAExB,SAAuBrS,EAAGnF,GACxBA,EAAIlG,KAAOqL,EAAE9F,MAAMW,EAAIkZ,SAHkB1B,KAM3C,SAAqBrS,EAAGnF,EAAKhE,GAC3BmJ,EAAE3C,IAAIxC,EAAIlG,KAAMkG,EAAIkZ,MAEpB,SAAcO,EAAK3f,EAAMof,GACnBO,EACFzd,EAAKyd,IAELzZ,EAAIlG,KAAOA,EACXkG,EAAIkZ,KAAOA,EACXld,WAfsDwb,KAoB5D,SAA2BrS,EAAGnF,GAC5BA,EAAIkZ,KAAKkB,SAAWjV,EAAE4M,UAAU/R,EAAIlG,KAAMkG,EAAIkZ,SAoXhD,SAASE,EAAQze,GACf,MAAwB,mBAAVA,GAKhB,SAAcA,GACZ,IAAI/C,EAEJ,IAAKA,KAAO+C,EACV,OAAO,EAGT,OAAO,EAZ+BgO,CAAKhO,EAAMzB,WAiBnD,SAASigB,EAAaviB,EAAMqiB,GAC1B,GAAsB,mBAAXA,EACT,MAAM,IAAIzX,MAAM,WAAa5K,EAAO,sBAMxC,SAAS0iB,EAAe1iB,EAAMyiB,GAC5B,GAAwB,mBAAbA,EACT,MAAM,IAAI7X,MAAM,WAAa5K,EAAO,wBAMxC,SAAS8hB,EAAe9hB,EAAM2hB,GAC5B,GAAIA,EACF,MAAM,IAAI/W,MAAM,CAAC,kBAAoB5K,EAAO,0CAA2C,iEAAkE,gBAAgBwI,KAAK,KAMlL,SAASma,EAAWtiB,GAClB,IAAKA,IAAS8b,EAAO9b,EAAK6E,MACxB,MAAM,IAAI0F,MAAM,uBAAyBvK,EAAO,KAMpD,SAASyiB,EAAW9iB,EAAMyjB,EAAWrK,GACnC,IAAKA,EACH,MAAM,IAAIxO,MAAM,IAAM5K,EAAO,0BAA4ByjB,EAAY,e,6BCrdzE,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,IAAIC,EAASrhB,OAAOC,UAAUH,eAC1BwhB,EAAQthB,OAAOC,UAAUub,SACzB+F,EAAiBvhB,OAAOuhB,eACxBC,EAAOxhB,OAAOyhB,yBAEdvG,EAAU,SAAiBxO,GAC7B,MAA6B,mBAAlB5C,MAAMoR,QACRpR,MAAMoR,QAAQxO,GAGI,mBAApB4U,EAAMvhB,KAAK2M,IAGhBgV,EAAgB,SAAuBC,GACzC,IAAKA,GAA2B,oBAApBL,EAAMvhB,KAAK4hB,GACrB,OAAO,EAGT,IASIhjB,EATAijB,EAAoBP,EAAOthB,KAAK4hB,EAAK,eACrCE,EAAmBF,EAAIvS,aAAeuS,EAAIvS,YAAYnP,WAAaohB,EAAOthB,KAAK4hB,EAAIvS,YAAYnP,UAAW,iBAE9G,GAAI0hB,EAAIvS,cAAgBwS,IAAsBC,EAC5C,OAAO,EAOT,IAAKljB,KAAOgjB,GAIZ,YAAsB,IAARhjB,GAAuB0iB,EAAOthB,KAAK4hB,EAAKhjB,IAIpDmjB,EAAc,SAAqBriB,EAAQkC,GACzC4f,GAAmC,cAAjB5f,EAAQhE,KAC5B4jB,EAAe9hB,EAAQkC,EAAQhE,KAAM,CACnCokB,YAAY,EACZzS,cAAc,EACd5N,MAAOC,EAAQqgB,SACfC,UAAU,IAGZxiB,EAAOkC,EAAQhE,MAAQgE,EAAQqgB,UAK/BE,EAAc,SAAqBP,EAAKhkB,GAC1C,GAAa,cAATA,EAAsB,CACxB,IAAK0jB,EAAOthB,KAAK4hB,EAAKhkB,GACpB,OACK,GAAI6jB,EAGT,OAAOA,EAAKG,EAAKhkB,GAAM+D,MAI3B,OAAOigB,EAAIhkB,IAGbqB,EAAOC,QAAU,SAAS6f,IACxB,IAAInd,EAAShE,EAAMb,EAAKqlB,EAAMC,EAAaC,EACvC5iB,EAASE,UAAU,GACnBD,EAAI,EACJE,EAASD,UAAUC,OACnB0iB,GAAO,EAaX,IAXsB,kBAAX7iB,IACT6iB,EAAO7iB,EACPA,EAASE,UAAU,IAAM,GAEzBD,EAAI,IAGQ,MAAVD,GAAoC,iBAAXA,GAAyC,mBAAXA,KACzDA,EAAS,IAGJC,EAAIE,IAAUF,EAGnB,GAAe,OAFfiC,EAAUhC,UAAUD,IAIlB,IAAK/B,KAAQgE,EACX7E,EAAMolB,EAAYziB,EAAQ9B,GAGtB8B,KAFJ0iB,EAAOD,EAAYvgB,EAAShE,MAItB2kB,GAAQH,IAAST,EAAcS,KAAUC,EAAclH,EAAQiH,MAC7DC,GACFA,GAAc,EACdC,EAAQvlB,GAAOoe,EAAQpe,GAAOA,EAAM,IAEpCulB,EAAQvlB,GAAO4kB,EAAc5kB,GAAOA,EAAM,GAI5CglB,EAAYriB,EAAQ,CAClB9B,KAAMA,EACNqkB,SAAUlD,EAAOwD,EAAMD,EAAOF,WAEP,IAATA,GAChBL,EAAYriB,EAAQ,CAClB9B,KAAMA,EACNqkB,SAAUG,KAStB,OAAO1iB,I,6BCnITT,EAAOC,QAEP,SAAcuhB,GACZ,GAAIA,EACF,MAAMA,I,6BCJV,EAAQ,IAER,IAAI+B,EAAW,EAAQ,KAEnBC,EAAQ,EAAQ,KAEpBxjB,EAAOC,QAAUujB,EACjB,IAAI3T,EAAQ2T,EAAMviB,UAUlB,SAASwiB,EAAQhgB,EAAQV,EAAU2gB,GACjC,IAAIC,EAAW9Z,KAAKmD,KAChByW,EAAU,IAAIF,EAAS9f,EAAQV,EAAU2gB,GAS7C,OAPIC,IACFF,EAAQ9kB,KAAOglB,EAAW,IAAMF,EAAQ9kB,KACxC8kB,EAAQxC,KAAO0C,GAGjBF,EAAQG,OAAQ,EAChB/Z,KAAK1E,SAAS8B,KAAKwc,GACZA,EApBT5T,EAAM4T,QAAUA,EAChB5T,EAAMgU,KAkCN,WACE,IAAIJ,EAAU5Z,KAAK4Z,QAAQhb,MAAMoB,KAAMlJ,WAEvC,OADA8iB,EAAQG,MAAQ,KACTH,GApCT5T,EAAMiU,KAwBN,WACE,IAAIL,EAAU5Z,KAAK4Z,QAAQhb,MAAMoB,KAAMlJ,WAEvC,MADA8iB,EAAQG,OAAQ,EACVH,GAxBR5T,EAAMkU,KAAON,G,6BCbb,EAAQ,IAER,EAAQ,IAER,IAAI3J,EAAY,EAAQ,KAIxB,SAASkK,KAFThkB,EAAOC,QAAUsjB,EAIjBS,EAAkB/iB,UAAYsI,MAAMtI,UACpCsiB,EAAStiB,UAAY,IAAI+iB,EAEzB,IAAInU,EAAQ0T,EAAStiB,UAcrB,SAASsiB,EAAS9f,EAAQV,EAAU2gB,GAClC,IAAItX,EACA6X,EACAC,EAEoB,iBAAbnhB,IACT2gB,EAAS3gB,EACTA,EAAW,MAGbqJ,EA2CF,SAAqBsX,GACnB,IACIxhB,EADA8C,EAAS,CAAC,KAAM,MAGE,iBAAX0e,KAGM,KAFfxhB,EAAQwhB,EAAOvhB,QAAQ,MAGrB6C,EAAO,GAAK0e,GAEZ1e,EAAO,GAAK0e,EAAOxc,MAAM,EAAGhF,GAC5B8C,EAAO,GAAK0e,EAAOxc,MAAMhF,EAAQ,KAIrC,OAAO8C,EA1DCmf,CAAYT,GACpBO,EAAQnK,EAAU/W,IAAa,MAC/BmhB,EAAW,CACTjhB,MAAO,CACL6B,KAAM,KACND,OAAQ,MAEVZ,IAAK,CACHa,KAAM,KACND,OAAQ,OAIR9B,GAAYA,EAASA,WACvBA,EAAWA,EAASA,UAGlBA,IAEEA,EAASE,OACXihB,EAAWnhB,EACXA,EAAWA,EAASE,OAGpBihB,EAASjhB,MAAQF,GAIjBU,EAAO2gB,QACTva,KAAKua,MAAQ3gB,EAAO2gB,MACpB3gB,EAASA,EAAOggB,SAGlB5Z,KAAK4Z,QAAUhgB,EACfoG,KAAKlL,KAAOslB,EACZpa,KAAKpG,OAASA,EACdoG,KAAK/E,KAAO/B,EAAWA,EAAS+B,KAAO,KACvC+E,KAAKhF,OAAS9B,EAAWA,EAAS8B,OAAS,KAC3CgF,KAAKqa,SAAWA,EAChBra,KAAKhJ,OAASuL,EAAM,GACpBvC,KAAKwa,OAASjY,EAAM,GA/DtByD,EAAMoR,KAAO,GACbpR,EAAMlR,KAAO,GACbkR,EAAMpM,OAAS,GACfoM,EAAM4T,QAAU,GAChB5T,EAAMuU,MAAQ,GACdvU,EAAM+T,MAAQ,KACd/T,EAAMhL,OAAS,KACfgL,EAAM/K,KAAO,M,6BCrBb,IAAImB,EAAM,GAAGnF,eAgCb,SAASwjB,EAAMA,GAKb,OAJKA,GAA0B,iBAAVA,IACnBA,EAAQ,IAGHpiB,EAAMoiB,EAAMxf,MAAQ,IAAM5C,EAAMoiB,EAAMzf,QAG/C,SAAS9B,EAAS4B,GAKhB,OAJKA,GAAsB,iBAARA,IACjBA,EAAM,IAGD2f,EAAM3f,EAAI1B,OAAS,IAAMqhB,EAAM3f,EAAIV,KAG5C,SAAS/B,EAAMQ,GACb,OAAOA,GAA0B,iBAAVA,EAAqBA,EAAQ,EAhDtD1C,EAAOC,QAEP,SAAmByC,GAEjB,IAAKA,GAA0B,iBAAVA,EACnB,OAAO,KAKT,GAAIuD,EAAIlF,KAAK2B,EAAO,aAAeuD,EAAIlF,KAAK2B,EAAO,QACjD,OAAOK,EAASL,EAAMK,UAKxB,GAAIkD,EAAIlF,KAAK2B,EAAO,UAAYuD,EAAIlF,KAAK2B,EAAO,OAC9C,OAAOK,EAASL,GAKlB,GAAIuD,EAAIlF,KAAK2B,EAAO,SAAWuD,EAAIlF,KAAK2B,EAAO,UAC7C,OAAO4hB,EAAM5hB,GAKf,OAAO,O,8BC/BT,YAEA,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,IAAIsK,EAAO,EAAQ,KAEf7L,EAAU,EAAQ,KAElBojB,EAAS,EAAQ,KAErBvkB,EAAOC,QAAUujB,EACjB,IAAIvd,EAAM,GAAGnF,eACT+O,EAAQ2T,EAAMviB,UAClB4O,EAAM2M,SAgIN,SAAkBgI,GAChB,IAAI9hB,EAAQmH,KAAKsY,UAAY,GAC7B,OAAOoC,EAAO7hB,GAASA,EAAM8Z,SAASgI,GAAYjkB,OAAOmC,IA7H3D,IAAI+hB,EAAQ,CAAC,UAAW,OAAQ,WAAY,OAAQ,UAAW,WAG/D,SAASjB,EAAM7gB,GACb,IAAI+hB,EACAxiB,EACAtB,EAEJ,GAAK+B,GAEE,GAAuB,iBAAZA,GAAwB4hB,EAAO5hB,GAC/CA,EAAU,CACRwf,SAAUxf,QAEP,GAAI,YAAaA,GAAW,aAAcA,EAC/C,OAAOA,OANPA,EAAU,GASZ,KAAMkH,gBAAgB2Z,GACpB,OAAO,IAAIA,EAAM7gB,GAYnB,IATAkH,KAAKjL,KAAO,GACZiL,KAAK1E,SAAW,GAChB0E,KAAK8a,QAAU,GACf9a,KAAKkC,IAAM1C,EAAQ0C,MAGnB7J,GAAS,EACTtB,EAAS6jB,EAAM7jB,SAENsB,EAAQtB,GACf8jB,EAAOD,EAAMviB,GAET+D,EAAIlF,KAAK4B,EAAS+hB,KACpB7a,KAAK6a,GAAQ/hB,EAAQ+hB,IAMzB,IAAKA,KAAQ/hB,GACkB,IAAzB8hB,EAAMtiB,QAAQuiB,KAChB7a,KAAK6a,GAAQ/hB,EAAQ+hB,IAwF3B,SAASE,EAAWC,EAAMlmB,GACxB,IAAgC,IAA5BkmB,EAAK1iB,QAAQ6K,EAAKiB,KACpB,MAAM,IAAI1E,MAAM,IAAM5K,EAAO,uCAAyCqO,EAAKiB,IAAM,KAMrF,SAAS6W,EAAeD,EAAMlmB,GAC5B,IAAKkmB,EACH,MAAM,IAAItb,MAAM,IAAM5K,EAAO,qBAMjC,SAASomB,EAAW/X,EAAMrO,GACxB,IAAKqO,EACH,MAAM,IAAIzD,MAAM,YAAc5K,EAAO,mCAnGzCqC,OAAOuhB,eAAe1S,EAAO,OAAQ,CACnCU,IAAK,WACH,OAAO1G,KAAK8a,QAAQ9a,KAAK8a,QAAQ/jB,OAAS,IAE5C4P,IAAK,SAAaxD,GAChB8X,EAAe9X,EAAM,QAEjBA,IAASnD,KAAKmD,MAChBnD,KAAK8a,QAAQ1d,KAAK+F,MAMxBhM,OAAOuhB,eAAe1S,EAAO,UAAW,CACtCU,IAAK,WACH,MAA4B,iBAAd1G,KAAKmD,KAAoBA,EAAKmB,QAAQtE,KAAKmD,WAAQxE,GAEnEgI,IAAK,SAAarC,GAChB4W,EAAWlb,KAAKmD,KAAM,WACtBnD,KAAKmD,KAAOA,EAAK7F,KAAKgH,GAAW,GAAItE,KAAKyE,aAK9CtN,OAAOuhB,eAAe1S,EAAO,WAAY,CACvCU,IAAK,WACH,MAA4B,iBAAd1G,KAAKmD,KAAoBA,EAAKsB,SAASzE,KAAKmD,WAAQxE,GAEpEgI,IAAK,SAAalC,GAChBwW,EAAexW,EAAU,YACzBsW,EAAWtW,EAAU,YACrBzE,KAAKmD,KAAOA,EAAK7F,KAAK0C,KAAKsE,SAAW,GAAIG,MAK9CtN,OAAOuhB,eAAe1S,EAAO,UAAW,CACtCU,IAAK,WACH,MAA4B,iBAAd1G,KAAKmD,KAAoBA,EAAKwB,QAAQ3E,KAAKmD,WAAQxE,GAEnEgI,IAAK,SAAahC,GAChB,IAAID,EAAMC,GAAW,GAIrB,GAHAoW,EAAWrW,EAAK,WAChBwW,EAAWlb,KAAKmD,KAAM,WAElBuB,EAAK,CACP,GAAsB,MAAlBA,EAAIjO,OAAO,GACb,MAAM,IAAIiJ,MAAM,iCAGlB,IAA6B,IAAzBgF,EAAIpM,QAAQ,IAAK,GACnB,MAAM,IAAIoH,MAAM,0CAIpBM,KAAKmD,KAAO7L,EAAQ0I,KAAKmD,KAAMuB,MAKnCvN,OAAOuhB,eAAe1S,EAAO,OAAQ,CACnCU,IAAK,WACH,MAA4B,iBAAd1G,KAAKmD,KAAoBA,EAAKsB,SAASzE,KAAKmD,KAAMnD,KAAK2E,cAAWhG,GAElFgI,IAAK,SAAawU,GAChBF,EAAeE,EAAM,QACrBJ,EAAWI,EAAM,QACjBnb,KAAKmD,KAAOA,EAAK7F,KAAK0C,KAAKsE,SAAW,GAAI6W,GAAQnb,KAAK2E,SAAW,U,gDC9ItE,IAAIxB,EAAO,EAAQ,KAenBhN,EAAOC,QAbP,SAAoBglB,EAAO1W,GACzB,GAAqB,iBAAV0W,EACT,OAAOA,EAGT,GAAqB,IAAjBA,EAAMrkB,OACR,OAAOqkB,EAGT,IAAIC,EAAYlY,EAAKsB,SAAS2W,EAAOjY,EAAKwB,QAAQyW,IAAU1W,EAC5D,OAAOvB,EAAK7F,KAAK6F,EAAKmB,QAAQ8W,GAAQC,K,cCFxC,SAASC,EAASxC,GAChB,QAASA,EAAIvS,aAAmD,mBAA7BuS,EAAIvS,YAAY+U,UAA2BxC,EAAIvS,YAAY+U,SAASxC,GALzG3iB,EAAOC,QAAU,SAAU0iB,GACzB,OAAc,MAAPA,IAAgBwC,EAASxC,IAQlC,SAAsBA,GACpB,MAAkC,mBAApBA,EAAIyC,aAAmD,mBAAdzC,EAAIzb,OAAwBie,EAASxC,EAAIzb,MAAM,EAAG,IATjEme,CAAa1C,MAAUA,EAAI2C,a,6BCPrE,IAAIC,EAAO,EAAQ,KAEnBvlB,EAAOC,QAAUggB,EACjBA,EAAOsF,KAAOA,EACd,IAAIre,EAAQ,GAAGA,MAEf,SAAS+Y,IACP,IAAIuF,EAAM,GACNC,EAAa,CACjB,IAIA,WACE,IAAIvjB,GAAS,EACTwjB,EAAQxe,EAAMnG,KAAKJ,UAAW,GAAI,GAClCglB,EAAOhlB,UAAUA,UAAUC,OAAS,GAExC,GAAoB,mBAAT+kB,EACT,MAAM,IAAIpc,MAAM,2CAA6Coc,IAK/D,SAAS5hB,EAAKyd,GACZ,IAAIrZ,EAAKqd,IAAMtjB,GAEX0f,EADS1a,EAAMnG,KAAKJ,UAAW,GACfuG,MAAM,GACtBtG,EAAS8kB,EAAM9kB,OACf+D,GAAO,EAEX,GAAI6c,EACFmE,EAAKnE,OADP,CAMA,OAAS7c,EAAM/D,GACO,OAAhBghB,EAAOjd,SAAiC6D,IAAhBoZ,EAAOjd,KACjCid,EAAOjd,GAAO+gB,EAAM/gB,IAIxB+gB,EAAQ9D,EAEJzZ,EACFod,EAAKpd,EAAIpE,GAAM0E,MAAM,KAAMid,GAE3BC,EAAKld,MAAM,KAAM,CAAC,MAAM0B,OAAOub,OA1B9Bjd,MAAM,KAAM,CAAC,MAAM0B,OAAOub,KAZjC,IA4CA,SAAavd,GACX,GAAkB,mBAAPA,EACT,MAAM,IAAIoB,MAAM,uCAAyCpB,GAI3D,OADAqd,EAAIve,KAAKkB,GACFsd,IAjDT,OAAOA,I,6BCXT,IAAIve,EAAQ,GAAGA,MACflH,EAAOC,QAIP,SAAckI,EAAIyd,GAChB,IAAIC,EACJ,OAEA,WACE,IAEI7gB,EAFAgD,EAASd,EAAMnG,KAAKJ,UAAW,GAC/BilB,EAAWzd,EAAGvH,OAASoH,EAAOpH,OAG9BglB,GACF5d,EAAOf,KAAK0e,GAGd,IACE3gB,EAASmD,EAAGM,MAAM,KAAMT,GACxB,MAAO8d,GAMP,GAAIF,GAAYC,EACd,MAAMC,EAGR,OAAOH,EAAKG,GAGTF,IACC5gB,GAAiC,mBAAhBA,EAAO+gB,KAC1B/gB,EAAO+gB,KAAKA,EAAMJ,GACT3gB,aAAkBuE,MAC3Boc,EAAK3gB,GAEL+gB,EAAK/gB,KAMX,SAAS2gB,IACFE,IACHA,GAAU,EACVD,EAASnd,MAAM,KAAM9H,YAMzB,SAASolB,EAAKrjB,GACZijB,EAAK,KAAMjjB,M,gBCzDf,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,IAAI8Z,EAAWxb,OAAOC,UAAUub,SAChCxc,EAAOC,QAEP,SAAkB0iB,GAChB,MAA8B,oBAAvBnG,EAASzb,KAAK4hB,K,6BCRvB,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,IAAInG,EAAWxb,OAAOC,UAAUub,SAEhCxc,EAAOC,QAAU,SAAU+lB,GACzB,IAAI/kB,EACJ,MAA4B,oBAArBub,EAASzb,KAAKilB,KAAiF,QAApD/kB,EAAYD,OAAOilB,eAAeD,KAA0B/kB,IAAcD,OAAOilB,eAAe,O,6BCVpJ,IAAIC,EAAU,EAAQ,KAElBvJ,EAAQ,EAAQ,KAEhBqE,EAAS,EAAQ,KAKrB,SAAS5Z,EAAMzE,GACb,IAAIwjB,EAAQD,EAAQlF,GACpBmF,EAAMllB,UAAU0B,QAAUga,EAAMwJ,EAAMllB,UAAU0B,QAASkH,KAAKjL,KAAK,YAAa+D,GAChFkH,KAAKmX,OAASmF,EANhBnmB,EAAOC,QAAUmH,EACjBA,EAAM4Z,OAASA,G,6BCPf,IAAIrE,EAAQ,EAAQ,KAEhByJ,EAAW,EAAQ,KAEvBpmB,EAAOC,QAGP,SAAiBomB,GACf,IAAIrhB,EACArF,EACA+C,EAMJ,IAAK/C,KALLymB,EAASE,EAAID,GACbD,EAASG,EAAMD,GAEfthB,EAASshB,EAAGrlB,WAGVyB,EAAQsC,EAAOrF,KAEe,iBAAV+C,IAClBsC,EAAOrF,GAAO,WAAY+C,EAAQA,EAAMyH,SAAWwS,EAAMja,IAI7D,OAAO4jB,EAGP,SAASC,EAAKC,GACZ,OAAOH,EAAM5d,MAAMoB,KAAM2c,GAI3B,SAASF,IACP,OAAMzc,gBAAgByc,EAIfD,EAAM5d,MAAMoB,KAAMlJ,WAHhB,IAAI4lB,EAAK5lB,c,gBCpCtB,EAAQ,KAEqB,mBAAlBK,OAAOuR,OAEhBvS,EAAOC,QAAU,SAAkBwmB,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKxlB,UAAYD,OAAOuR,OAAOmU,EAAUzlB,UAAW,CAClDmP,YAAa,CACX1N,MAAO+jB,EACP1D,YAAY,EACZE,UAAU,EACV3S,cAAc,OAOtBtQ,EAAOC,QAAU,SAAkBwmB,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EAEd,IAAIE,EAAW,aAEfA,EAAS3lB,UAAYylB,EAAUzlB,UAC/BwlB,EAAKxlB,UAAY,IAAI2lB,EACrBH,EAAKxlB,UAAUmP,YAAcqW,K,6BCzBnC,IAAI9J,EAAQ,EAAQ,KAEhBkK,EAAS,EAAQ,KAEjBC,EAAgB,EAAQ,KAExBC,EAAW,EAAQ,KAEnBC,EAAS,EAAQ,KAEjBC,EAAY,EAAQ,KAIxB,SAASjG,EAAOD,EAAKE,GACnBpX,KAAKoX,KAAOA,EACZpX,KAAK3E,OAAS,GACd2E,KAAKlH,QAAUga,EAAM9S,KAAKlH,SAC1BkH,KAAKqd,WAAW,IAChBrd,KAAKsd,QAAS,EACdtd,KAAKud,SAAU,EACfvd,KAAKwd,QAAS,EACdxd,KAAKyd,SAAU,EACfzd,KAAK0d,SAAWT,EAAc7F,GAAMsG,SACpC1d,KAAKkd,SAAWA,EAASld,KAAM,UAC/BA,KAAKmd,OAASA,EAAOnd,MAbvB7J,EAAOC,QAAU+gB,EAgBjB,IAAInR,EAAQmR,EAAO/f,UA2HnB,SAASyP,EAAKhO,GACZ,IACI/C,EADAqF,EAAS,GAGb,IAAKrF,KAAO+C,EACVsC,EAAOiC,KAAKtH,GAGd,OAAOqF,EAhIT6K,EAAMqX,WAAa,EAAQ,KAC3BrX,EAAMzI,MAAQ,EAAQ,KAGtByI,EAAMlN,QAAU,EAAQ,KAGxBkN,EAAM2X,UAAYX,EAAO,WAAW,GACpChX,EAAM4X,UAAYZ,EAAO,UAAU,GACnChX,EAAM6X,UAAYb,EAAO,UAAU,GACnChX,EAAM8X,WAAad,EAAO,WAAW,GAWrChX,EAAM+X,mBAAqB,CAAC,CAAC,iBAAkB,CAAC,cAAe,CAAC,cAAe,CAAC,cAAe,CAAC,QAAS,CAAC,gBAAiB,CACzH/Y,YAAY,IACV,CAAC,aAAc,CACjBA,YAAY,IACV,CAAC,WAAY,CACfA,YAAY,KAYdgB,EAAMgY,cAAgB,CAAC,CAAC,aAAc,CACpC9Y,UAAU,IACR,CAAC,aAAc,CACjBA,UAAU,IACR,CAAC,gBAAiB,CACpBA,UAAU,IACR,CAAC,aAAc,CACjBF,YAAY,IACV,CAAC,WAAY,CACfA,YAAY,KAYdgB,EAAMiY,oBAAsB,CAAC,CAAC,eAAgB,CAC5CjZ,YAAY,IACV,CAAC,aAAc,CACjBA,YAAY,IACV,CAAC,aAAc,CACjBA,YAAY,IACV,CAAC,gBAAiB,CACpBA,YAAY,IACV,CAAC,gBAAiB,CACpBA,YAAY,IACV,CAAC,OAAQ,CACXA,YAAY,IACV,CAAC,OAAQ,CACXA,YAAY,IACV,CAAC,aAAc,CACjBA,YAAY,IACV,CAAC,WAAY,CACfA,YAAY,KAIdgB,EAAMkY,gBAAkB,CACtBC,QAAS,EAAQ,KACjBC,aAAc,EAAQ,KACtBC,WAAY,EAAQ,KACpBC,WAAY,EAAQ,KACpBC,WAAY,EAAQ,KACpBC,cAAe,EAAQ,KACvBC,KAAM,EAAQ,KACdC,cAAe,EAAQ,KACvBC,KAAM,EAAQ,KACdC,SAAU,EAAQ,KAClBC,WAAY,EAAQ,KACpBC,MAAO,EAAQ,KACfC,UAAW,EAAQ,MAErB/Y,EAAMgZ,iBAAmB,CACvBC,OAAQ,EAAQ,KAChBC,SAAU,EAAQ,KAClBC,IAAK,EAAQ,KACbR,KAAM,EAAQ,KACdxX,KAAM,EAAQ,KACd1N,UAAW,EAAQ,KACnB2lB,OAAQ,EAAQ,KAChBC,SAAU,EAAQ,KAClBC,SAAU,EAAQ,KAClB7nB,KAAM,EAAQ,KACd,MAAS,EAAQ,KACjB+C,KAAM,EAAQ,MAIhBwL,EAAMuZ,aAAe1Y,EAAKb,EAAMkY,iBAChClY,EAAMwZ,cAAgB3Y,EAAKb,EAAMgZ,kBAGjChZ,EAAMyZ,cAAgBrC,EAAU,SAChCpX,EAAM0Z,eAAiBtC,EAAU,UACjCpX,EAAM2Z,gBAAkBvC,G,6BCpJxBjnB,EAAOC,QAIP,SAAiBN,EAAKsX,EAAOlP,GAC3B,OAEA,WACE,IAAI0hB,EAAU1hB,GAAO8B,KACjBiO,EAAU2R,EAAQ9pB,GAEtB,OADA8pB,EAAQ9pB,IAAQsX,EAGhB,WACEwS,EAAQ9pB,GAAOmY,M,6BCArB,SAAS4R,EAAwBC,GAC/B,OAEA,SAA0BzkB,GACxB,IAAIhD,GAAS,EACTtB,EAAS+oB,EAAQ/oB,OAErB,GAAIsE,EAAS,EACX,MAAO,GAGT,OAAShD,EAAQtB,GACf,GAAI+oB,EAAQznB,GAASgD,EACnB,MAAO,CACLJ,KAAM5C,EAAQ,EACd2C,OAAQK,GAAUykB,EAAQznB,EAAQ,IAAM,GAAK,EAC7CgD,OAAQA,GAKd,MAAO,IAMX,SAAS0kB,EAAwBD,GAC/B,OAGA,SAA0B5mB,GACxB,IAAI+B,EAAO/B,GAAYA,EAAS+B,KAC5BD,EAAS9B,GAAYA,EAAS8B,OAElC,IAAKglB,MAAM/kB,KAAU+kB,MAAMhlB,IAAWC,EAAO,KAAK6kB,EAChD,OAAQA,EAAQ7kB,EAAO,IAAM,GAAKD,EAAS,GAAK,EAGlD,OAAQ,GArDZ,EAAQ,IAER7E,EAAOC,QAEP,SAAiBghB,GACf,IAAIkB,EAqDN,SAAiBzf,GACf,IAAIsC,EAAS,GACT9C,EAAQQ,EAAMP,QAAQ,MAE1B,MAAkB,IAAXD,GACL8C,EAAOiC,KAAK/E,EAAQ,GACpBA,EAAQQ,EAAMP,QAAQ,KAAMD,EAAQ,GAItC,OADA8C,EAAOiC,KAAKvE,EAAM9B,OAAS,GACpBoE,EA/DQ2kB,CAAQppB,OAAO0gB,IAC9B,MAAO,CACL6I,WAAYJ,EAAwBvH,GACpCoF,SAAUqC,EAAwBzH,M,6BCRtC,EAAQ,IAERniB,EAAOC,QAIP,SAAiB8H,EAAKpI,GACpB,OAIA,SAAkB+C,GAChB,IAIIxC,EAJA4D,EAAO,EACP5B,EAAQQ,EAAMP,QAAQ,MACtB2mB,EAAS/gB,EAAIpI,GACboF,EAAQ,GAGZ,MAAkB,IAAX7C,GACL6C,EAAMkC,KAAKvE,EAAMwE,MAAMpD,EAAM5B,IAC7B4B,EAAO5B,EAAQ,GACfhC,EAAYwC,EAAMpC,OAAOwD,MAIwB,IAA/BglB,EAAO3mB,QAAQjC,IAC/B6E,EAAMkC,KAAK,MAGb/E,EAAQQ,EAAMP,QAAQ,KAAM2B,GAI9B,OADAiB,EAAMkC,KAAKvE,EAAMwE,MAAMpD,IAChBiB,EAAMoC,KAAK,O,6BCjCtB,IAAIwV,EAAQ,EAAQ,KAEhBoN,EAAW,EAAQ,KAEvB/pB,EAAOC,QAGP,SAAiB8H,GAEf,OADAiiB,EAAQC,IAkDR,SAAmBvnB,EAAOK,EAAUJ,GAClC,OAAOonB,EAASrnB,EAAOia,EAAMha,EAAS,CACpCI,SAAUoK,EAAUpK,GACpBS,QAASe,MApDNylB,EAGP,SAAS7c,EAAUpK,GAKjB,IAJA,IAAImnB,EAAUniB,EAAI7C,OACdJ,EAAO/B,EAAS+B,KAChBE,EAAS,KAEJF,GACDA,KAAQolB,GAIdllB,EAAOiC,MAAMijB,EAAQplB,IAAS,GAAK,GAGrC,MAAO,CACL7B,MAAOF,EACPC,OAAQgC,GAQZ,SAAST,EAAcd,EAAQV,EAAUzB,GAC1B,IAATA,GAIJyG,EAAIkZ,KAAKwC,QAAQhgB,EAAQV,GAK3B,SAASinB,EAAQtnB,EAAOK,EAAUonB,GAChCJ,EAASrnB,EAAO,CACdK,SAAUoK,EAAUpK,GACpBS,QAASe,EACTF,KAAM8lB,EACN7mB,UAAW6mB,EACX3lB,YAAauD,EACbtD,iBAAkBsD,O,2mDCpDxB/H,EAAOC,QAGP,SAAqBC,GACnB,IAAIoB,EAA4B,iBAAdpB,EAAyBA,EAAUqB,WAAW,GAAKrB,EACrE,OAAOoB,GAAQ,IAEZA,GAAQ,KAEXA,GAAQ,IAELA,GAAQ,IAERA,GAAQ,IAERA,GAAQ,K,6BCfb,IAAI8oB,EAAe,EAAQ,KAEvB9nB,EAAU,EAAQ,KAEtBtC,EAAOC,QAGP,SAAwBC,GACtB,OAAOkqB,EAAalqB,IAAcoC,EAAQpC,K,6BCP5C,IAAIoU,EACApO,EAAY,GAEhBlG,EAAOC,QAEP,SAAsBoD,GACpB,IAEIgnB,EAFA1mB,EAAS,IAAMN,EAAa,IAYhC,IARAiR,EAAKA,GAAMgW,SAAShX,cAAc,MAC/BiX,UAAY5mB,GACf0mB,EAAQ/V,EAAGkW,aAMDjpB,WAAW8oB,EAAMzpB,OAAS,KAAOsF,GAA4B,SAAf7C,EACtD,OAAO,EAIT,OAAOgnB,IAAU1mB,GAAiB0mB,I,6BCxBpC,EAAQ,IAERrqB,EAAOC,QA6CP,SAAiB4D,GACf,OAGA,SAAkBnB,EAAOwhB,GACvB,IAOIhiB,EACAtB,EACA6pB,EACA9rB,EACA+rB,EACAC,EAZAC,EAAO/gB,KACP3E,EAAS0lB,EAAK1lB,OACd2lB,EAAS,GACTC,EAAUF,EAAK/mB,EAAO,WACtBiE,EAAa8iB,EAAK/mB,EAAO,cACzBiB,EAAOof,EAASpf,KAChBD,EAASqf,EAASrf,OAStB,IAAKnC,EACH,OAAOmoB,EAKTE,EAAI9lB,IAAMA,EACV8lB,EAAI9J,KAAO2J,EAAK3J,KAGhB+J,EAAe,IAOf,KAAOtoB,GAAO,CAKZ,IAJAR,GAAS,EACTtB,EAASkqB,EAAQlqB,OACjB8pB,GAAU,IAEDxoB,EAAQtB,IACfjC,EAAOmsB,EAAQ5oB,KACfuoB,EAAS3iB,EAAWnJ,KAInB8rB,EAAOQ,cAAeL,EAAKtD,SAAcmD,EAAOS,WAAcN,EAAKzD,QAAasD,EAAOU,YAAeP,EAAKxD,SAAcqD,EAAOW,WAAcR,EAAKvD,SAClJsD,EAAcjoB,EAAM9B,OACpB6pB,EAAOhiB,MAAMmiB,EAAM,CAACG,EAAKroB,MACzBgoB,EAAUC,IAAgBjoB,EAAM9B,YAU/B8pB,GACHE,EAAK3J,KAAK6C,KAAK,IAAIva,MAAM,iBAAkBwhB,EAAI9lB,OAKnD,OADA2lB,EAAKS,IAAMpmB,IACJ4lB,EAIP,SAASG,EAAeM,GAItB,IAHA,IAAIC,GAAa,EACbrpB,EAAQopB,EAASnpB,QAAQ,OAEX,IAAXD,GACL4C,IACAymB,EAAYrpB,EACZA,EAAQopB,EAASnpB,QAAQ,KAAMD,EAAQ,IAGtB,IAAfqpB,EACF1mB,GAAUymB,EAAS1qB,OAEnBiE,EAASymB,EAAS1qB,OAAS2qB,EAGzBzmB,KAAQI,KACS,IAAfqmB,EACF1mB,GAAUK,EAAOJ,GACRD,GAAUK,EAAOJ,KAC1BD,EAASK,EAAOJ,GAAQ,IA4B9B,SAASG,IACP,IAAIN,EAAM,CACRG,KAAMA,EACND,OAAQA,GAGV,OADAF,EAAIO,OAAS0lB,EAAKrD,SAAS5iB,GACpBA,EAKT,SAAS6mB,EAASvoB,GAChB4G,KAAK5G,MAAQA,EACb4G,KAAK5F,IAAMgB,IAkFb,SAAS8lB,EAAIO,GACX,IAjEIG,EAiEAzoB,EApHN,WACE,IAAI0oB,EAAc,GACd/mB,EAAMG,EAAO,EAIjB,OAAO,WAGL,IAFA,IAAIyH,EAAOzH,EAAO,EAEXH,EAAM4H,GACXmf,EAAYzkB,MAAM/B,EAAOP,IAAQ,GAAK,GACtCA,IAGF,OAAO+mB,GAsGIC,GACThnB,GAlEA8mB,EAASxmB,IAIb,SAAgBjG,EAAMgE,GACpB,IAAIc,EAAO9E,EAAK+D,SACZE,EAAQa,EAAOA,EAAKb,MAAQwoB,EAC5BG,EAAW,GACXC,EAAI/nB,GAAQA,EAAKG,IAAIa,KACrBgnB,EAAIL,EAAO3mB,KAWf,GAVA9F,EAAK+D,SAAW,IAAIyoB,EAASvoB,GAUzBa,GAAQd,GAAUc,EAAKd,OAAQ,CAGjC,GAFA4oB,EAAW9nB,EAAKd,OAEZ6oB,EAAIC,EAAG,CACT,OAASD,EAAIC,GACXF,EAAS3kB,MAAM/B,EAAO2mB,IAAM,GAAK,GAGnCD,EAAS3kB,KAAKwkB,EAAO5mB,QAGvB7B,EAAS4oB,EAASzhB,OAAOnH,GAI3B,OADAhE,EAAK+D,SAASC,OAASA,GAAU,GAC1BhE,IAgCL8Y,EAAU7S,IAQd,OAtFF,SAAqBqmB,GAEf5oB,EAAMqpB,UAAU,EAAGT,EAAS1qB,UAAY0qB,GAE1CV,EAAK3J,KAAK6C,KAAK,IAAIva,MAAM,8EAAoFtE,KA2E/G+mB,CAAYV,GACZ7iB,EAAMwjB,MAAQA,EACdA,EAAM7rB,KAAOA,EACbqI,EAAMrI,KAAOA,EACbsC,EAAQA,EAAMqpB,UAAUT,EAAS1qB,QACjCoqB,EAAeM,GACftoB,EAASA,IACFyF,EAIP,SAASA,EAAMzJ,EAAMiD,GACnB,OAAO0C,EAtCX,SAAa3F,EAAMiD,GACjB,IAAIvF,EAAWuF,EAASA,EAAOvF,SAAWmuB,EACtC/mB,EAAOpH,EAASA,EAASkE,OAAS,GActC,OAZIkD,GAAQ9E,EAAK6E,OAASC,EAAKD,MAAQ7E,EAAK6E,QAAQqoB,GAAmBC,EAAUroB,IAASqoB,EAAUntB,KAClGA,EAAOktB,EAAgBltB,EAAK6E,MAAM9C,KAAK6pB,EAAM9mB,EAAM9E,IAGjDA,IAAS8E,GACXpH,EAASuK,KAAKjI,GAGZ4rB,EAAKtD,SAA6B,IAAlBuD,EAAOjqB,QACzBgqB,EAAKpD,YAGAxoB,EAsBM8hB,CAAInc,EAAI3F,GAAOiD,GAASe,GAWrC,SAASipB,IACP,IAAIjtB,EAAOyJ,EAAMA,MAAM,KAAM9H,WAI7B,OAHAmE,EAAOgT,EAAQhT,KACfD,EAASiT,EAAQjT,OACjBnC,EAAQ4oB,EAAW5oB,EACZ1D,EAMT,SAASoB,IACP,IAAI4E,EAASL,EAAI,IAIjB,OAHAG,EAAOgT,EAAQhT,KACfD,EAASiT,EAAQjT,OACjBnC,EAAQ4oB,EAAW5oB,EACZsC,EAAOjC,aA7StB,IAAImpB,EAAkB,CACpB7nB,KAuBF,SAAmBP,EAAM9E,GAEvB,OADA8E,EAAKpB,OAAS1D,EAAK0D,MACZoB,GAxBPqkB,WA8BF,SAAyBrkB,EAAM9E,GAC7B,GAAI6K,KAAKlH,QAAQkM,WACf,OAAO7P,EAIT,OADA8E,EAAKpH,SAAWoH,EAAKpH,SAASyN,OAAOnL,EAAKtC,UACnCoH,IAhCT,SAASqoB,EAAUntB,GACjB,IAAIiE,EACAgB,EAEJ,MAAkB,SAAdjF,EAAK6E,OAAoB7E,EAAK+D,WAIlCE,EAAQjE,EAAK+D,SAASE,MACtBgB,EAAMjF,EAAK+D,SAASkB,IAIbhB,EAAM6B,OAASb,EAAIa,MAAQb,EAAIY,OAAS5B,EAAM4B,SAAW7F,EAAK0D,MAAM9B,U,6BCtB7E,IAAI+b,EAAQ,EAAQ,KAEhByP,EAAU,EAAQ,KAElBtpB,EAAW,EAAQ,KAEvB9C,EAAOC,QAEP,SAAoB0C,GAClB,IAEIhD,EACA+C,EAFAoV,EADOjO,KACQlH,QAInB,GAAe,MAAXA,EACFA,EAAU,OACL,IAAuB,iBAAZA,EAGhB,MAAM,IAAI4G,MAAM,kBAAoB5G,EAAU,2BAF9CA,EAAUga,EAAMha,GAKlB,IAAKhD,KAAOmD,EAAU,CAOpB,GAJa,OAFbJ,EAAQC,EAAQhD,MAGd+C,EAAQoV,EAAQnY,IAGN,WAARA,GAAqC,kBAAV+C,GAA+B,WAAR/C,GAAqC,iBAAV+C,EAC/E,MAAM,IAAI6G,MAAM,kBAAoB7G,EAAQ,0BAA4B/C,EAAM,KAGhFgD,EAAQhD,GAAO+C,EAKjB,OA7BWmH,KA2BNlH,QAAUA,EA3BJkH,KA4BNif,OAASsD,EAAQzpB,GA5BXkH,O,6BCTb7J,EAAOC,QAAUmsB,EACjB,IAAItpB,EAAW,CAAC,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxF8L,EAAM9L,EAASqH,OAAO,CAAC,IAAK,MAC5B0E,EAAaD,EAAIzE,OAAO,CAAC,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAKpG,SAASiiB,EAAQzpB,GACf,IAAIE,EAAWF,GAAW,GAE1B,OAAIE,EAASgM,WACJA,EAGFhM,EAAS+L,IAAMA,EAAM9L,EAX9BspB,EAAiB,QAAItpB,EACrBspB,EAAQxd,IAAMA,EACdwd,EAAQvd,WAAaA,G,kkBCNrB,EAAQ,IAER,IAAI8N,EAAQ,EAAQ,KAEhB0P,EAAiB,EAAQ,KAE7BrsB,EAAOC,QAKP,WACE,IAQIjB,EAPA0D,EAAQnC,OADDsJ,KACaoX,MACpBhe,EAAQ,CACV6B,KAAM,EACND,OAAQ,EACRK,OAAQ,GAENonB,EAAU3P,EAAM1Z,GAQQ,SAF5BP,EAAQA,EAAMvB,QAAQorB,EAAwBC,IAEpCjrB,WAAW,KACnBmB,EAAQA,EAAMwE,MAAM,GACpBolB,EAAQznB,SACRynB,EAAQpnB,UAGVlG,EAAO,CACL6E,KAAM,OACNnH,SAvBSmN,KAuBMyf,cAAc5mB,EAAO4pB,GACpCvpB,SAAU,CACRE,MAAOA,EACPgB,IA1BO4F,KA0BGwhB,KAAO1O,EAAM1Z,KA1BhB4G,KA8BDlH,QAAQI,UAChBspB,EAAertB,GAAM,GAGvB,OAAOA,GAvCT,IAAIwtB,EAAY,KACZD,EAAyB,Y,6BCR7B,IAAI/qB,EAAQ,EAAQ,KASpB,SAASirB,EAAKztB,UACLA,EAAK+D,SAGd,SAAS2pB,EAAK1tB,GACZA,EAAK+D,cAAWyF,EAZlBxI,EAAOC,QAEP,SAAwBjB,EAAM2tB,GAE5B,OADAnrB,EAAMxC,EAAM2tB,EAAQF,EAAOC,GACpB1tB,I,6BCNTgB,EAAOC,QAAUwB,EAEjB,IAAImrB,EAAU,EAAQ,KAElBlrB,GAAW,EACXC,EAAO,OACPC,GAAO,EAKX,SAASH,EAAaI,EAAMzB,EAAM0B,EAASC,GACzC,IAAI8qB,EAWJ,SAASC,EAAI9tB,EAAMkD,EAAOF,GACxB,IACI+qB,EADA/nB,EAAS,GAGb,OAAK5E,IAAQysB,EAAG7tB,EAAMkD,EAAOF,EAAQA,EAAQpB,OAAS,IAAM,QAC1DoE,EAASgoB,EAASlrB,EAAQ9C,EAAMgD,KAErB,KAAOJ,IAKhB5C,EAAKtC,UAAYsI,EAAO,KAAOrD,IACjCorB,EAAYC,EAQhB,SAAatwB,EAAUsF,GACrB,IAGIgD,EAFAioB,EAAOlrB,GAAW,EAAI,EACtBG,GAASH,EAAUrF,EAASkE,QAFtB,GAEsCqsB,EAGhD,KAAO/qB,GALG,GAKYA,EAAQxF,EAASkE,QAAQ,CAG7C,IAFAoE,EAAS8nB,EAAIpwB,EAASwF,GAAQA,EAAOF,IAE1B,KAAOJ,EAChB,OAAOoD,EAGT9C,EAA6B,iBAAd8C,EAAO,GAAkBA,EAAO,GAAK9C,EAAQ+qB,GArBvCC,CAAIluB,EAAKtC,SAAUsF,EAAQmI,OAAOnL,MACtC,KAAO4C,EAAOmrB,EANtB/nB,EAjBO,mBAAT5E,GAA0C,mBAAZ0B,IACvCC,EAAUD,EACVA,EAAU1B,EACVA,EAAO,MAGTysB,EAAKD,EAAQxsB,GACb0sB,EAAIjrB,EAAM,KAAM,IAyClB,SAASmrB,EAAStqB,GAChB,OAAc,OAAVA,GAAmC,iBAAVA,GAAsB,WAAYA,EACtDA,EAGY,iBAAVA,EACF,CAAChB,EAAUgB,GAGb,CAACA,GAhEVjB,EAAaC,SAAWA,EACxBD,EAAaE,KAAOA,EACpBF,EAAaG,KAAOA,G,6BCPpB,SAASgrB,EAAQxsB,GACf,GAAoB,iBAATA,EACT,OAoEJ,SAAqBA,GACnB,OAEA,SAAcpB,GACZ,OAAOmuB,QAAQnuB,GAAQA,EAAK6E,OAASzD,IAxE9BgtB,CAAYhtB,GAGrB,GAAIA,QACF,OAAOitB,EAGT,GAAoB,iBAATjtB,EACT,OAAQ,WAAYA,EAAOktB,EAAaC,GAAgBntB,GAG1D,GAAoB,mBAATA,EACT,OAAOA,EAGT,MAAM,IAAImJ,MAAM,gDAiBlB,SAASgkB,EAAentB,GACtB,OAEA,SAAiBpB,GACf,IAAIW,EAEJ,IAAKA,KAAOS,EACV,GAAIpB,EAAKW,KAASS,EAAKT,GACrB,OAAO,EAIX,OAAO,GAIX,SAAS2tB,EAAWtnB,GAClB,IAAIwnB,EA/BN,SAAoBxnB,GAKlB,IAJA,IAAIynB,EAAU,GACV7sB,EAASoF,EAAMpF,OACfsB,GAAS,IAEJA,EAAQtB,GACf6sB,EAAQvrB,GAAS0qB,EAAQ5mB,EAAM9D,IAGjC,OAAOurB,EAsBMC,CAAW1nB,GACpBpF,EAAS4sB,EAAO5sB,OACpB,OAEA,WACE,IAAIsB,GAAS,EAEb,OAASA,EAAQtB,GACf,GAAI4sB,EAAOtrB,GAAOuG,MAAMoB,KAAMlJ,WAC5B,OAAO,EAIX,OAAO,GAeX,SAAS0sB,IACP,OAAO,EAlFTrtB,EAAOC,QAAU2sB,G,6BCAjB,IAAIe,EAAa,EAAQ,KAEzB3tB,EAAOC,QAGP,SAAiB8qB,EAAKroB,EAAOkrB,GAC3B,IACIhtB,EACA0qB,EACAvmB,EACA7C,EAJAhC,EAAYwC,EAAMpC,OAAO,GAM7B,GAAkB,OAAdJ,EACF,OAKF,GAAI0tB,EACF,OAAO,EAGT1rB,EAAQ,EACRtB,EAAS8B,EAAM9B,OACf0qB,EAAWprB,EACX6E,EAAQ,GAER,KAAO7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpByrB,EAAWztB,KAIhB6E,GAAS7E,EAES,OAAdA,IACForB,GAAYvmB,EACZA,EAAQ,IAGV7C,IAGF6oB,EAAIO,K,6BC5CN,IAAIuC,EAAS,EAAQ,KAEjBpgB,EAAO,EAAQ,KAEnBzN,EAAOC,QAQP,SAAsB8qB,EAAKroB,EAAOkrB,GAChC,IAMI1tB,EACA4tB,EACA9qB,EARAd,GAAS,EACTtB,EAAS8B,EAAM9B,OACf0qB,EAAW,GACXgB,EAAU,GACVyB,EAAgB,GAChBC,EAAe,GAKnB,OAAS9rB,EAAQtB,GAGf,GAFAV,EAAYwC,EAAMpC,OAAO4B,GAErBc,EAOF,GANAA,GAAS,EACTsoB,GAAYyC,EACZzB,GAAW0B,EACXD,EAAgB,GAChBC,EAAe,GAEX9tB,IAAcssB,EAChBuB,EAAgB7tB,EAChB8tB,EAAe9tB,OAKf,IAHAorB,GAAYprB,EACZosB,GAAWpsB,IAEFgC,EAAQtB,GAAQ,CAGvB,KAFAV,EAAYwC,EAAMpC,OAAO4B,KAEPhC,IAAcssB,EAAW,CACzCwB,EAAe9tB,EACf6tB,EAAgB7tB,EAChB,MAGForB,GAAYprB,EACZosB,GAAWpsB,OAGV,GAAIA,IAAc+tB,GAAWvrB,EAAMpC,OAAO4B,EAAQ,KAAOhC,GAAawC,EAAMpC,OAAO4B,EAAQ,KAAOhC,GAAawC,EAAMpC,OAAO4B,EAAQ,KAAOhC,EAChJ6tB,GAAiBG,EACjBhsB,GAAS,EACTc,GAAS,OACJ,GAAI9C,IAAciuB,EACvBJ,GAAiB7tB,EACjB8C,GAAS,MACJ,CAGL,IAFA8qB,EAAa,GAEN5tB,IAAciuB,GAASjuB,IAAc+tB,GAC1CH,GAAc5tB,EACdA,EAAYwC,EAAMpC,SAAS4B,GAG7B,GAAIhC,IAAcssB,EAChB,MAGFuB,GAAiBD,EAAa5tB,EAC9B8tB,GAAgB9tB,EAIpB,GAAIosB,EACF,QAAIsB,GAIG7C,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,OACNuqB,KAAM,KACN1rB,MAAO+K,EAAK6e,MAhFlB,IAAIE,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IAEVC,EAAcL,EAAOI,EADD,I,6BCRxB,IAAIxgB,EAAO,EAAQ,KAEnBzN,EAAOC,QASP,SAAoB8qB,EAAKroB,EAAOkrB,GAC9B,IAKIS,EACA7jB,EACAtK,EACAouB,EACAvpB,EACAunB,EACAiC,EACAC,EACAC,EACAzrB,EACAiC,EAdApC,EADOgH,KACSlH,QAChB/B,EAAS8B,EAAM9B,OAAS,EACxBsB,EAAQ,EACRopB,EAAW,GAaf,IAAKzoB,EAAS+L,IACZ,OAKF,KAAO1M,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,IAI3C7C,GAAYprB,EACZgC,IAQF,GALAc,EAASd,GAGThC,EAAYwC,EAAMpC,OAAO4B,MAEPwsB,GAAWxuB,IAAcyuB,EACzC,OAGFzsB,IACAsI,EAAStK,EACTmuB,EAAa,EACb/C,GAAYprB,EAEZ,KAAOgC,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPsI,GAIlB8gB,GAAYprB,EACZmuB,IACAnsB,IAGF,GAAImsB,EAAaO,EACf,OAKF,KAAO1sB,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,IAI3C7C,GAAYprB,EACZgC,IAKFosB,EAAO,GACPvpB,EAAQ,GAER,KAAO7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPsqB,GAAatsB,IAAcwuB,GAAWxuB,IAAcyuB,GAIlEzuB,IAAc+tB,GAAW/tB,IAAciuB,EACzCppB,GAAS7E,GAETouB,GAAQvpB,EAAQ7E,EAChB6E,EAAQ,IAGV7C,IAKF,IAFAhC,EAAYwC,EAAMpC,OAAO4B,KAERhC,IAAcssB,EAC7B,OAGF,GAAIoB,EACF,OAAO,GAGT3oB,EAAM8lB,EAAI9lB,OACNJ,QAAUymB,EAAS1qB,OACvBqE,EAAIC,QAAUomB,EAAS1qB,OACvB0qB,GAAYgD,EACZA,EAjHWzkB,KAiHCmd,OAAOiD,IAjHRpgB,KAiHiBkd,SAASuH,GAAOrpB,GAExCF,IACFumB,GAAYvmB,GAGdA,EAAQ,GACRypB,EAAU,GACVC,EAAkB,GAClBnC,EAAU,GACViC,EAAkB,GAGlB,KAAOrsB,EAAQtB,GAOb,GANAV,EAAYwC,EAAMpC,OAAO4B,GACzBoqB,GAAWkC,EACXD,GAAmBE,EACnBD,EAAU,GACVC,EAAkB,GAEdvuB,IAAcssB,EAAlB,CAqBA,IAVIF,GACFkC,GAAWtuB,EACXuuB,GAAmBvuB,GAEnBorB,GAAYprB,EAGd6E,EAAQ,GACR7C,IAEOA,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAIlBlpB,GAAS7E,EACTgC,IAMF,GAHAssB,GAAWzpB,EACX0pB,GAAmB1pB,EAAMmC,MAAMlE,KAE3B+B,EAAMnE,QAAUiuB,GAApB,CAMA,IAFA9pB,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPsI,GAIlBzF,GAAS7E,EACTgC,IAMF,GAHAssB,GAAWzpB,EACX0pB,GAAmB1pB,IAEfA,EAAMnE,OAASytB,GAAnB,CAMA,IAFAtpB,EAAQ,GAED7C,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,IAI3CK,GAAWtuB,EACXuuB,GAAmBvuB,EACnBgC,IAGF,IAAKhC,GAAaA,IAAcssB,EAC9B,aAzEAF,GAAWpsB,EACXuuB,GAAmBvuB,EACnBgC,IA4EJ,OAAO6oB,EADPO,GAAYgB,EAAUkC,EACfzD,CAAc,CACnBlnB,KAAM,OACNuqB,KAAME,GAAQ,KACd5rB,MAAO+K,EAAK8gB,MAhOhB,IAAI/B,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACVS,EAAU,IACVC,EAAS,IACTC,EAAkB,EAClBC,EAAoB,G,6BCTxB,EAAQ,IAER,IAAIphB,EAAO,EAAQ,KAEfqhB,EAAY,EAAQ,KAExB9uB,EAAOC,QAOP,SAAoB8qB,EAAKroB,EAAOkrB,GAC9B,IAUI9M,EAEA5gB,EACA6uB,EACAC,EACA1C,EACAxnB,EACAmqB,EACAC,EACAC,EAlBAjF,EADOrgB,KACQ3E,OACf4C,EAFO+B,KAEWke,gBAClBlgB,EAHOgC,KAGaie,oBACpB7iB,EAAM8lB,EAAI9lB,MACVmqB,EAAcnqB,EAAIH,KAClBlE,EAAS8B,EAAM9B,OACfghB,EAAS,GACTO,EAAW,GACXkN,EAAU,GAEVntB,EAAQ,EAUZ,KAAOA,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,IAI3CjsB,IAGF,GAAIQ,EAAMpC,OAAO4B,KAAWotB,EAC1B,OAGF,GAAI1B,EACF,OAAO,EAGT1rB,EAAQ,EAER,KAAOA,EAAQtB,GAAQ,CASrB,IARAouB,EAAYtsB,EAAMP,QAAQqqB,EAAWtqB,GACrC+sB,EAAa/sB,EACbgtB,GAAW,GAEQ,IAAfF,IACFA,EAAYpuB,GAGPsB,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,IAI3CjsB,IAgBF,GAbIQ,EAAMpC,OAAO4B,KAAWotB,GAC1BptB,IACAgtB,GAAW,EAEPxsB,EAAMpC,OAAO4B,KAAW+rB,GAC1B/rB,KAGFA,EAAQ+sB,EAGV3C,EAAU5pB,EAAMwE,MAAMhF,EAAO8sB,IAExBE,IAAazhB,EAAK6e,GAAU,CAC/BpqB,EAAQ+sB,EACR,MAGF,IAAKC,IACHH,EAAOrsB,EAAMwE,MAAMhF,GAIf4sB,EAAUjnB,EAAcC,EAnFrB+B,KAmFuC,CAACkhB,EAAKgE,GAAM,KACxD,MAIJjqB,EAAOmqB,IAAe/sB,EAAQoqB,EAAU5pB,EAAMwE,MAAM+nB,EAAYD,GAChEK,EAAQpoB,KAAK/E,EAAQ+sB,GACrBrN,EAAO3a,KAAKnC,GACZqd,EAASlb,KAAKqlB,GACdpqB,EAAQ8sB,EAAY,EAGtB9sB,GAAS,EACTtB,EAASyuB,EAAQzuB,OACjBkgB,EAAMiK,EAAInJ,EAAOza,KAAKqlB,IAEtB,OAAStqB,EAAQtB,GACfspB,EAAQkF,IAAgBlF,EAAQkF,IAAgB,GAAKC,EAAQntB,GAC7DktB,IAMF,OAHAD,EAxGWtlB,KAwGC8d,aACZxF,EAzGWtY,KAyGKyf,cAAcnH,EAAShb,KAAKqlB,GAAYvnB,GACxDkqB,IACOrO,EAAI,CACTjd,KAAM,aACNnH,SAAUylB,KApHd,IAAIqK,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACVqB,EAAO,K,6BCVXtvB,EAAOC,QAOP,SAAoB8qB,EAAKroB,EAAOkrB,GAC9B,IAOI1tB,EACA6E,EACAwqB,EARA1sB,EADOgH,KACSlH,QAChB/B,EAAS8B,EAAM9B,OAAS,EACxBsB,GAAS,EACT+C,EAAM8lB,EAAI9lB,MACVqmB,EAAW,GACXgB,EAAU,GAMd,OAASpqB,EAAQtB,GAAQ,CAGvB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,EAAO,CAChDjsB,IACA,MAGFopB,GAAYprB,EAKdqvB,EAAQ,EAER,OAASrtB,GAAStB,GAAQ,CAGxB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPstB,EAAQ,CACxBttB,IACA,MAGFopB,GAAYprB,EACZqvB,IAGF,GAAIA,EAAQE,EACV,OAGF,IAAKF,IAAU1sB,EAASkM,UAAYrM,EAAMpC,OAAO4B,EAAQ,KAAOstB,EAC9D,OAGF5uB,EAAS8B,EAAM9B,OAAS,EAGxBmE,EAAQ,GAER,OAAS7C,EAAQtB,GAAQ,CAGvB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,EAAO,CAChDjsB,IACA,MAGF6C,GAAS7E,EAKX,IAAK2C,EAASkM,UAA6B,IAAjBhK,EAAMnE,QAAgBV,GAAaA,IAAcssB,EACzE,OAGF,GAAIoB,EACF,OAAO,EAKTtC,GAAYvmB,EACZA,EAAQ,GACRunB,EAAU,GAEV,OAASpqB,EAAQtB,IACfV,EAAYwC,EAAMpC,OAAO4B,KAEPhC,IAAcssB,GAIhC,GAAItsB,IAAc+tB,GAAW/tB,IAAciuB,GAASjuB,IAAcsvB,EAAlE,CAMA,KAAOtvB,IAAc+tB,GAAW/tB,IAAciuB,GAC5CppB,GAAS7E,EACTA,EAAYwC,EAAMpC,SAAS4B,GAG7B,KAAOhC,IAAcsvB,GACnBzqB,GAAS7E,EACTA,EAAYwC,EAAMpC,SAAS4B,GAG7B,KAAOhC,IAAc+tB,GAAW/tB,IAAciuB,GAC5CppB,GAAS7E,EACTA,EAAYwC,EAAMpC,SAAS4B,GAG7BA,SApBEoqB,GAAWvnB,EAAQ7E,EACnB6E,EAAQ,GAyBZ,OAHAE,EAAIJ,QAAUymB,EAAS1qB,OACvBqE,EAAIC,QAAUomB,EAAS1qB,OAEhBmqB,EADPO,GAAYgB,EAAUvnB,EACfgmB,CAAc,CACnBlnB,KAAM,UACN0rB,MAAOA,EACP7yB,SApHSmN,KAoHM0f,eAAe+C,EAASrnB,MA3H3C,IAAIunB,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACVuB,EAAS,IACTC,EAAgB,G,6BCLpBzvB,EAAOC,QASP,SAAuB8qB,EAAKroB,EAAOkrB,GACjC,IAGI1tB,EACAsK,EACAklB,EACA3qB,EANA7C,GAAS,EACTtB,EAAS8B,EAAM9B,OAAS,EACxB0qB,EAAW,GAMf,OAASppB,EAAQtB,KACfV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,GAASjuB,IAAc+tB,IAIzC3C,GAAYprB,EAGd,GAAIA,IAAcyvB,GAAczvB,IAAc0vB,GAAU1vB,IAAc2vB,EACpE,OAGFrlB,EAAStK,EACTorB,GAAYprB,EACZwvB,EAAc,EACd3qB,EAAQ,GAER,OAAS7C,EAAQtB,GAGf,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPsI,EAChBklB,IACApE,GAAYvmB,EAAQyF,EACpBzF,EAAQ,OACH,IAAI7E,IAAc+tB,EAElB,OAAIyB,GAAeI,KAAiC5vB,GAAaA,IAAcssB,IACpFlB,GAAYvmB,IAER6oB,GAIG7C,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,wBAGR,EAZAkB,GAAS7E,IA5Cf,IAAIssB,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACV0B,EAAa,IACbE,EAAe,IACfD,EAAS,IACTE,EAA8B,G,6BCNlC,EAAQ,KAER,EAAQ,IAER,EAAQ,IAER,EAAQ,KAER,EAAQ,IAER,IAAIriB,EAAO,EAAQ,KAEfogB,EAAS,EAAQ,KAEjBvrB,EAAU,EAAQ,KAElBytB,EAAY,EAAQ,KAEpBC,EAAe,EAAQ,KAEvBlB,EAAY,EAAQ,KAExB9uB,EAAOC,QAoCP,SAAc8qB,EAAKroB,EAAOkrB,GACxB,IAKIqC,EAKAlrB,EACAmrB,EACAhwB,EACAsK,EACAwkB,EACAC,EACAC,EACAiB,EACA7D,EACAxnB,EACAsrB,EACAC,EACAC,EACAC,EACAC,EACAzR,EACA0R,EACAC,EACAC,EACA3xB,EACAiG,EACAhB,EACA2sB,EA/BA/hB,EADOhF,KACWlH,QAAQkM,WAC1BE,EAFOlF,KAESlH,QAAQoM,SACxBjH,EAHO+B,KAGWke,gBAClB8I,EAJOhnB,KAIYge,cAEnB3lB,EAAQ,EACRtB,EAAS8B,EAAM9B,OACfqC,EAAQ,KACRgM,EAAO,EAyBX,KAAO/M,EAAQtB,GAAQ,CAGrB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,EAChBlf,GAAQ6hB,EAAW7hB,EAAO6hB,MACrB,IAAI5wB,IAAc+tB,EAGvB,MAFAhf,IAKF/M,IAGF,GAAI+M,GAAQ6hB,EACV,OAMF,GAHA5wB,EAAYwC,EAAMpC,OAAO4B,GACzB+tB,EAAUphB,EAAakiB,EAAkCC,GAEf,IAAtCC,EAAuB/wB,GACzBsK,EAAStK,EACTgwB,GAAU,MACL,CAIL,IAHAA,GAAU,EACVnrB,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpBI,EAAQpC,KAIb6E,GAAS7E,EACTgC,IAKF,GAFAhC,EAAYwC,EAAMpC,OAAO4B,IAEpB6C,IAAgC,IAAvBkrB,EAAQ/vB,GACpB,OAGF+C,EAAQwD,SAAS1B,EAAO,IACxByF,EAAStK,EAKX,IAFAA,EAAYwC,EAAMpC,SAAS4B,MAET+rB,GAAW/tB,IAAciuB,EACzC,OAGF,GAAIP,EACF,OAAO,EAGT1rB,EAAQ,EACRouB,EAAQ,GACRC,EAAW,GACXC,EAAa,GAEb,KAAOtuB,EAAQtB,GAAQ,CAarB,IAZAouB,EAAYtsB,EAAMP,QAAQqqB,EAAWtqB,GACrC+sB,EAAa/sB,EACbgtB,GAAW,EACX0B,GAAW,GAEQ,IAAf5B,IACFA,EAAYpuB,GAGdqD,EAAM/B,EAAQ4uB,EACd7hB,EAAO,EAEA/M,EAAQtB,GAAQ,CAGrB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,EAChBlf,GAAQ6hB,EAAW7hB,EAAO6hB,MACrB,IAAI5wB,IAAc+tB,EAGvB,MAFAhf,IAKF/M,IAcF,GAXI+M,GAAQ6hB,IACVF,GAAW,GAGT7R,GAAQ9P,GAAQ8P,EAAK/b,SACvB4tB,GAAW,GAGb1wB,EAAYwC,EAAMpC,OAAO4B,GACzBiuB,EAAgB,MAEXS,EAAU,CACb,IAA0C,IAAtCK,EAAuB/wB,GACzBiwB,EAAgBjwB,EAChBgC,IACA+M,QACK,CAGL,IAFAlK,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpBI,EAAQpC,KAIb6E,GAAS7E,EACTgC,IAGFhC,EAAYwC,EAAMpC,OAAO4B,GACzBA,IAEI6C,IAAgC,IAAvBkrB,EAAQ/vB,KACnBiwB,EAAgBjwB,EAChB+O,GAAQlK,EAAMnE,OAAS,GAI3B,GAAIuvB,EAGF,IAFAjwB,EAAYwC,EAAMpC,OAAO4B,MAEPisB,EAChBlf,GAAQ6hB,EAAW7hB,EAAO6hB,EAC1B5uB,SACK,GAAIhC,IAAc+tB,EAAS,CAGhC,IAFAhqB,EAAM/B,EAAQ4uB,EAEP5uB,EAAQ+B,GACTvB,EAAMpC,OAAO4B,KAAW+rB,GAI5B/rB,IACA+M,IAGE/M,IAAU+B,GAAOvB,EAAMpC,OAAO4B,KAAW+rB,IAC3C/rB,GAAS4uB,EAAW,EACpB7hB,GAAQ6hB,EAAW,QAEZ5wB,IAAcssB,GAA2B,KAAdtsB,IACpCiwB,EAAgB,MAKtB,GAAIA,EAAe,CACjB,IAAKphB,GAAYvE,IAAW2lB,EAC1B,MAGFjB,GAAW,OAENrgB,GAAe+hB,GAAYluB,EAAMpC,OAAO2uB,KAAgBhB,EAElDpf,GAAckQ,IACvB6R,EAAW3hB,GAAQ8P,EAAK/b,QAAUiM,EAAO6hB,GAFzCF,GAAW,EAKb1B,GAAW,EACXhtB,EAAQ+sB,EAMV,GAHAnqB,EAAOpC,EAAMwE,MAAM+nB,EAAYD,GAC/B1C,EAAU2C,IAAe/sB,EAAQ4C,EAAOpC,EAAMwE,MAAMhF,EAAO8sB,IAEvDmB,IAAkBR,GAAcQ,IAAkBN,GAAgBM,IAAkBP,IAClF9nB,EAAWugB,cAActnB,KArNtB8I,KAqNiCkhB,EAAKjmB,GAAM,GACjD,MAOJ,GAHAsrB,EAAYC,EACZA,GAAS5iB,EAAK6e,GAAS1rB,OAEnBgwB,GAAY7R,EACdA,EAAKrc,MAAQqc,EAAKrc,MAAMyH,OAAOqmB,EAAY1rB,GAC3CyrB,EAAWA,EAASpmB,OAAOqmB,EAAY1rB,GACvC0rB,EAAa,QACR,GAAItB,EACiB,IAAtBsB,EAAW5vB,SACbme,EAAKrc,MAAMuE,KAAK,IAChB8X,EAAKmS,MAAQV,EAAWrmB,UAG1B4U,EAAO,CACLrc,MAAO,CAACoC,GACR9B,OAAQiM,EACRiiB,MAAO,IAETZ,EAAMrpB,KAAK8X,GACXwR,EAAWA,EAASpmB,OAAOqmB,EAAY1rB,GACvC0rB,EAAa,QACR,GAAIH,EAAO,CAChB,GAAID,EACF,MAGFI,EAAWvpB,KAAKnC,OACX,CACL,GAAIsrB,EACF,MAGF,GAAItB,EAAU+B,EAAa/oB,EA1PpB+B,KA0PsC,CAACkhB,EAAKjmB,GAAM,IACvD,MAGFia,EAAKrc,MAAQqc,EAAKrc,MAAMyH,OAAOqmB,EAAY1rB,GAC3CyrB,EAAWA,EAASpmB,OAAOqmB,EAAY1rB,GACvC0rB,EAAa,GAGftuB,EAAQ8sB,EAAY,EAGtBhwB,EAAO+rB,EAAIwF,EAASppB,KAAKqlB,IAAYP,MAAM,CACzCpoB,KAAM,OACNqsB,QAASA,EACTjtB,MAAOA,EACPkuB,MAAO,KACPz0B,SAAU,KAEZ+zB,EA7QW5mB,KA6QK4d,YAChBiJ,EA9QW7mB,KA8QW8d,aACtBgJ,GAAU,EACVzuB,GAAS,EACTtB,EAAS0vB,EAAM1vB,OAEf,OAASsB,EAAQtB,GACfme,EAAOuR,EAAMpuB,GAAOQ,MAAMyE,KAAKqlB,GAC/BvnB,EAAM8lB,EAAI9lB,OACV8Z,EAAOgM,EAAIhM,EAAJgM,CAAUqG,EAtRRvnB,KAsRuBkV,EAAM9Z,GAAMjG,IAEnCmyB,QACPR,GAAU,GAGZ5R,EAAOuR,EAAMpuB,GAAOgvB,MAAM/pB,KAAKqlB,GAE3BtqB,IAAUtB,EAAS,IACrBme,GAAQyN,GAGVzB,EAAIhM,GAMN,OAHA0R,IACAC,IACA1xB,EAAKmyB,MAAQR,EACN3xB,GA5UT,IAAI2wB,EAAa,IACbE,EAAe,IAEfD,EAAS,IAET3B,EAAU,IACVzB,EAAY,KACZ2B,EAAQ,KAERkD,EAAY,IACZP,EAAW,EACXQ,EAA6B,eAC7BC,EAAuB,uBACvBC,EAAoB,8DACpBC,EAA6B,mCAC7BC,EAA4B,kBAI5BT,EAAyB,GAC7BA,EAAuBtB,IAAc,EACrCsB,EAnBa,MAmBoB,EACjCA,EAAuBrB,IAAU,EAIjC,IAAIoB,EAAuB,CAC3B,KAA8B,GAI1BD,EAAkC,GAgTtC,SAASK,EAASrpB,EAAKrF,EAAOK,GAC5B,IAGI4uB,EACA3uB,EAJAknB,EAAUniB,EAAI7C,OAEd0sB,EAAU,KAgBd,OAbAlvB,GAJSqF,EAAIpF,QAAQoM,SAAW8iB,EAAmBC,GAIxCrpB,MAAM,KAAM9H,WAEnBoH,EAAIpF,QAAQiM,MACd+iB,EAAOjvB,EAAMqvB,MAAMR,MAGjBvuB,EAAS2uB,EAAK,GAAG/wB,OACjBgxB,EAAUD,EAAK,GAAGhpB,gBAAkB0oB,EACpCnH,EAAQnnB,EAAS+B,OAAS9B,EAC1BN,EAAQA,EAAMwE,MAAMlE,IAIjB,CACLa,KAAM,WACNstB,MAAOG,EAA2BlxB,KAAKsC,IAAUA,EAAMpC,OAAOoC,EAAM9B,OAAS,KAAO4rB,EACpFoF,QAASA,EACTl1B,SAAUqL,EAAIuhB,cAAc5mB,EAAOK,IAMvC,SAAS8uB,EAAiB9pB,EAAKrF,EAAOK,GACpC,IAAImnB,EAAUniB,EAAI7C,OACdJ,EAAO/B,EAAS+B,KAQpB,OALApC,EAAQA,EAAMvB,QAAQswB,EAA4BO,GAIlDltB,EAAO/B,EAAS+B,KACTpC,EAAMvB,QAAQuwB,EAA2BM,GAIhD,SAASA,EAASC,GAGhB,OAFA/H,EAAQplB,IAASolB,EAAQplB,IAAS,GAAKmtB,EAAGrxB,OAC1CkE,IACO,IAMX,SAASgtB,EAAe/pB,EAAKrF,EAAOK,GAClC,IAEI2E,EACAwqB,EACAnD,EACAnqB,EACAutB,EACAjwB,EACAtB,EARAspB,EAAUniB,EAAI7C,OACdJ,EAAO/B,EAAS+B,KA0BpB,IAfAF,GADAlC,EAAQA,EAAMvB,QAAQqwB,GAuBtB,SAAkBS,EAAIG,EAAIC,EAAIC,EAAIC,GAChCL,EAASE,EAAKC,EAAKC,EACnBvD,EAAOwD,EAKHC,OAAOH,GAAM,IAAMH,EAAOtxB,OAAS,GAAM,IAC3CyxB,EAAKpE,EAAUoE,GAIjB,OADA3qB,EAAM0qB,EAAKvE,EAAOI,EAASoE,EAAGzxB,QAAU0xB,GAC3BvD,MAlCD9hB,MAAMuf,IACpB2F,EAAenC,EAAattB,EAAOqtB,EAAUroB,GAAK1E,QAAQiK,MAAMuf,IAQnD,GAAKuC,EAClB7E,EAAQplB,IAASolB,EAAQplB,IAAS,GAAKotB,EAAOtxB,OAC9CkE,IACA5C,EAAQ,EACRtB,EAASgE,EAAMhE,SAENsB,EAAQtB,GACfspB,EAAQplB,IAASolB,EAAQplB,IAAS,GAAKF,EAAM1C,GAAOtB,OAASuxB,EAAajwB,GAAOtB,OACjFkE,IAGF,OAAOqtB,EAAahrB,KAAKqlB,GApY3BuE,EA5BY,MA4B6B,EACzCA,EAzBoB,MAyB6B,G,6BC1DjD,IAAI3hB,EAAS,EAAQ,GACjBuF,EAAM,EAAQ,IACd8d,EAAM,EAAQ,IACdpjB,EAAoB,EAAQ,KAC5BqjB,EAAc,EAAQ,IACtBnX,EAAQ,EAAQ,GAChBhM,EAAO,EAAQ,IAAkB3C,EACjC4V,EAAO,EAAQ,KAAkB5V,EACjC0C,EAAK,EAAQ,IAAgB1C,EAC7B+lB,EAAQ,EAAQ,KAAkBllB,KAElCmlB,EAAUxjB,EAAa,OACvBQ,EAAOgjB,EACP/iB,EAAQ+iB,EAAQ3xB,UAEhB4xB,EALS,UAKIJ,EAAI,EAAQ,GAAR,CAA4B5iB,IAC7CijB,EAAO,SAAUvyB,OAAOU,UAGxB8xB,EAAW,SAAUC,GACvB,IAAIviB,EAAKiiB,EAAYM,GAAU,GAC/B,GAAiB,iBAANviB,GAAkBA,EAAG7P,OAAS,EAAG,CAE1C,IACIqyB,EAAOC,EAAOC,EADdC,GADJ3iB,EAAKqiB,EAAOriB,EAAGhD,OAASklB,EAAMliB,EAAI,IACnBlP,WAAW,GAE1B,GAAc,KAAV6xB,GAA0B,KAAVA,GAElB,GAAc,MADdH,EAAQxiB,EAAGlP,WAAW,KACQ,MAAV0xB,EAAe,OAAOI,SACrC,GAAc,KAAVD,EAAc,CACvB,OAAQ3iB,EAAGlP,WAAW,IACpB,KAAK,GAAI,KAAK,GAAI2xB,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQ1iB,EAEnB,IAAK,IAAoDnP,EAAhDgyB,EAAS7iB,EAAGvJ,MAAM,GAAIxG,EAAI,EAAGorB,EAAIwH,EAAO1yB,OAAcF,EAAIorB,EAAGprB,IAIpE,IAHAY,EAAOgyB,EAAO/xB,WAAWb,IAGd,IAAMY,EAAO6xB,EAAS,OAAOE,IACxC,OAAO5sB,SAAS6sB,EAAQJ,IAE5B,OAAQziB,GAGZ,IAAKmiB,EAAQ,UAAYA,EAAQ,QAAUA,EAAQ,QAAS,CAC1DA,EAAU,SAAgBlwB,GACxB,IAAI+N,EAAK9P,UAAUC,OAAS,EAAI,EAAI8B,EAChC6wB,EAAO1pB,KACX,OAAO0pB,aAAgBX,IAEjBC,EAAatX,GAAM,WAAc1L,EAAM2jB,QAAQzyB,KAAKwyB,MAxCjD,UAwC6Dd,EAAIc,IACpElkB,EAAkB,IAAIO,EAAKmjB,EAAStiB,IAAM8iB,EAAMX,GAAWG,EAAStiB,IAE5E,IAAK,IAMgB9Q,EANZ+Q,EAAO,EAAQ,GAAoBnB,EAAKK,GAAQ,6KAMvD3C,MAAM,KAAMwmB,EAAI,EAAQ/iB,EAAK9P,OAAS6yB,EAAGA,IACrC9e,EAAI/E,EAAMjQ,EAAM+Q,EAAK+iB,MAAQ9e,EAAIie,EAASjzB,IAC5C2P,EAAGsjB,EAASjzB,EAAK6iB,EAAK5S,EAAMjQ,IAGhCizB,EAAQ3xB,UAAY4O,EACpBA,EAAMO,YAAcwiB,EACpB,EAAQ,GAAR,CAAuBxjB,EAxDZ,SAwD4BwjB,K,6BCjEzC,EAAQ,IAER,IAAInlB,EAAO,EAAQ,KAEfogB,EAAS,EAAQ,KAEjBkC,EAAY,EAAQ,KAExB/vB,EAAOC,QAQP,SAAqByC,EAAOgxB,GAC1B,IAIIxxB,EACAwpB,EACAxc,EACAykB,EAPA/R,EAASlf,EAAMuK,MAAMuf,GACrBzpB,EAAW6e,EAAOhhB,OAAS,EAC3BgzB,EAAY9R,IACZ+R,EAAS,GAKbjS,EAAOnV,QAAQohB,EAAOI,EAASyF,GAAW,KAE1C,KAAO3wB,KAIL,GAHA2oB,EAAcqE,EAAUnO,EAAO7e,IAC/B8wB,EAAO9wB,GAAY2oB,EAAYxc,MAEO,IAAlCzB,EAAKmU,EAAO7e,IAAWnC,OAA3B,CAIA,IAAI8qB,EAAY1oB,OAIT,CACL4wB,EAAY9R,IACZ,MALI4J,EAAY1oB,OAAS,GAAK0oB,EAAY1oB,OAAS4wB,IACjDA,EAAYlI,EAAY1oB,QAQ9B,GAAI4wB,IAAc9R,IAGhB,IAFA/e,EAAW6e,EAAOhhB,OAEXmC,KAAY,CAIjB,IAHAmM,EAAQ2kB,EAAO9wB,GACfb,EAAQ0xB,EAED1xB,KAAWA,KAASgN,IACzBhN,IAIAyxB,EADoC,IAAlClmB,EAAKmU,EAAO7e,IAAWnC,QAAgBgzB,GAAa1xB,IAAU0xB,EACtDzF,EAEA,GAGZvM,EAAO7e,GAAY4wB,EAAU/R,EAAO7e,GAAUmE,MAAMhF,KAASgN,EAAQA,EAAMhN,GAAS,EAAI,GAK5F,OADA0f,EAAOkS,QACAlS,EAAOza,KAAKqlB,IA1DrB,IAAIyB,EAAU,IACVzB,EAAY,KACZ2B,EAAQ,M,6BCXZnuB,EAAOC,QAcP,SAAuB8qB,EAAKroB,EAAOkrB,GACjC,IAKItB,EACAvnB,EACA7E,EACAsK,EACA+kB,EARAtqB,EAAM8lB,EAAI9lB,MACVrE,EAAS8B,EAAM9B,OACfsB,GAAS,EACTopB,EAAW,GAQf,OAASppB,EAAQtB,GAAQ,CAGvB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/rB,GAAS6xB,EAAoB,CACxD7xB,IACA,MAGFopB,GAAYprB,EAKdosB,EAAU,GACVvnB,EAAQ,GAER,OAAS7C,EAAQtB,GAAQ,CAGvB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPsqB,EAAW,CAC3BtqB,IACA,MAGEhC,IAAc+tB,GAAW/tB,IAAciuB,EACzCppB,GAAS7E,GAETosB,GAAWvnB,EAAQ7E,EACnB6E,EAAQ,IAaZ,GATAE,EAAIJ,QAAUymB,EAAS1qB,OACvBqE,EAAIC,QAAUomB,EAAS1qB,OACvB0qB,GAAYgB,EAAUvnB,EAItB7E,EAAYwC,EAAMpC,SAAS4B,GAC3BsI,EAAS9H,EAAMpC,SAAS4B,GAEpBhC,IAAcssB,IAAcwH,EAAexpB,GAC7C,OAGF8gB,GAAYprB,EAGZ6E,EAAQyF,EACR+kB,EAAQyE,EAAexpB,GAEvB,OAAStI,EAAQtB,GAAQ,CAGvB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPsI,EAAQ,CACxB,GAAItK,IAAcssB,EAChB,OAGFtqB,IACA,MAGF6C,GAAS7E,EAGX,GAAI0tB,EACF,OAAO,EAGT,OAAO7C,EAAIO,EAAWvmB,EAAfgmB,CAAsB,CAC3BlnB,KAAM,UACN0rB,MAAOA,EACP7yB,SArFSmN,KAqFM0f,eAAe+C,EAASrnB,MAnG3C,IAAIunB,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IAGV8F,EAAqB,EAIrBC,EAAiB,GACrBA,EAPe,KAOY,EAC3BA,EAPa,KAOY,G,6BCZzB,EAAQ,IAER,EAAQ,KAER,IAAInjB,EAAe,EAAQ,KAAgBA,aAE3C7Q,EAAOC,QAMP,SAAmB8qB,EAAKroB,EAAOkrB,GAC7B,IAII7pB,EACAe,EACAI,EACAhF,EACAqI,EACA0rB,EACA3I,EATAtc,EADOnF,KACOlH,QAAQqM,OACtBpO,EAAS8B,EAAM9B,OACfsB,EAAQ,EAQRgyB,EAAY,CAAC,CAAC,oCAAqC,2BAA2B,GAAO,CAAC,QAAS,OAAO,GAAO,CAAC,OAAQ,OAAO,GAAO,CAAC,cAAe,KAAK,GAAO,CAAC,eAAgB,SAAS,GAAO,CAAC,IAAIvkB,OAAO,QAAUX,EAAO7H,KAAK,KAAO,mBAAoB,KAAM,MAAM,GAAO,CAAC,IAAIwI,OAAOkB,EAAahQ,OAAS,SAAU,MAAM,IAGvU,KAAOqB,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,GAASjuB,IAAc+tB,IAIzC/rB,IAGF,GAAIQ,EAAMpC,OAAO4B,KAAWiyB,EAC1B,OAIFpwB,GAAiB,KADjBA,EAAOrB,EAAMP,QAAQqqB,EAAWtqB,EAAQ,IACnBtB,EAASmD,EAC9Be,EAAOpC,EAAMwE,MAAMhF,EAAO6B,GAC1BmB,GAAU,EACVqD,EAAQ2rB,EAAUtzB,OAElB,OAASsE,EAASqD,GAChB,GAAI2rB,EAAUhvB,GAAQ,GAAG9E,KAAK0E,GAAO,CACnCmvB,EAAWC,EAAUhvB,GACrB,MAIJ,IAAK+uB,EACH,OAGF,GAAIrG,EACF,OAAOqG,EAAS,GAKlB,GAFA/xB,EAAQ6B,GAEHkwB,EAAS,GAAG7zB,KAAK0E,GACpB,KAAO5C,EAAQtB,GAAQ,CAKrB,GAHAmD,GAAiB,KADjBA,EAAOrB,EAAMP,QAAQqqB,EAAWtqB,EAAQ,IACnBtB,EAASmD,EAC9Be,EAAOpC,EAAMwE,MAAMhF,EAAQ,EAAG6B,GAE1BkwB,EAAS,GAAG7zB,KAAK0E,GAAO,CACtBA,IACF5C,EAAQ6B,GAGV,MAGF7B,EAAQ6B,EAKZ,OADAunB,EAAW5oB,EAAMwE,MAAM,EAAGhF,GACnB6oB,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,OACNnB,MAAO4oB,KA9EX,IAAI6C,EAAQ,KACRF,EAAU,IACVzB,EAAY,KACZ2H,EAAO,K,6BCVX,EAAQ,IAER,IAAIxG,EAAa,EAAQ,KAErBxgB,EAAY,EAAQ,KAExBnN,EAAOC,QAAUm0B,EACjBA,EAAmBlJ,WAAY,EAC/BkJ,EAAmBjJ,YAAa,EAChC,IAAIkJ,EAAc,KACd7H,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACVqG,EAAiB,IACjBC,EAAkB,IAClBC,EAAU,IACVC,EAAU,IACVC,EAAyB,gBAE7B,SAASN,EAAmBrJ,EAAKroB,EAAOkrB,GACtC,IAEI1rB,EACAtB,EACA0qB,EACArmB,EACAmqB,EACA9C,EACAvnB,EACA4vB,EACAz0B,EACA00B,EACA9T,EACAqO,EAZAjF,EADOrgB,KACQ3E,OAcnB,GAfW2E,KAeDlH,QAAQmM,UAAlB,CAUA,IANA5M,EAAQ,EACRtB,EAAS8B,EAAM9B,OACf0qB,EAAW,GACXrmB,EAAM8lB,EAAI9lB,MACVmqB,EAAcnqB,EAAIH,KAEX5C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpByrB,EAAWztB,KAIhBorB,GAAYprB,EACZgC,IAGF,GAAIQ,EAAMpC,OAAO4B,KAAWoyB,GAAkB5xB,EAAMpC,OAAO4B,EAAQ,KAAOsyB,EAA1E,CAQA,IAHAtyB,GADAopB,GAAYgJ,EAAiBE,GACZ5zB,OACjBmE,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPqyB,GAEPr0B,IAAcm0B,IACvBtvB,GAAS7E,EACTgC,IACAhC,EAAYwC,EAAMpC,OAAO4B,IAG3B6C,GAAS7E,EACTgC,IAGF,GAAK6C,GAASrC,EAAMpC,OAAO4B,KAAWqyB,GAAmB7xB,EAAMpC,OAAO4B,EAAQ,KAAOuyB,EAArF,CAIA,GAAI7G,EACF,OAAO,EAOT,IAJAgH,EAAaznB,EAAUpI,GAEvB7C,GADAopB,GAAYvmB,EAAQwvB,EAAkBE,GACrB7zB,OAEVsB,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,GAASjuB,IAAc+tB,IAIzC3C,GAAYprB,EACZgC,IASF,IANA+C,EAAIJ,QAAUymB,EAAS1qB,OACvBqE,EAAIC,QAAUomB,EAAS1qB,OACvBmE,EAAQ,GACRunB,EAAU,GACVqI,EAAW,GAEJzyB,EAAQtB,GAAQ,CAGrB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPsqB,EAAW,CAI3B,IAHAmI,EAAWz0B,EACXgC,IAEOA,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPsqB,GAIlBmI,GAAYz0B,EACZgC,IAMF,IAHA6C,GAAS4vB,EACTA,EAAW,GAEJzyB,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAIlB0G,GAAYz0B,EACZgC,IAGF,GAAwB,IAApByyB,EAAS/zB,OACX,MAGFmE,GAAS4vB,EAGP5vB,IACFunB,GAAWvnB,EACXA,EAAQ,IAGVunB,GAAWpsB,EACXgC,IAaF,OAVAopB,GAAYgB,EACZA,EAAUA,EAAQnrB,QAAQuzB,GAAwB,SAAU5vB,GAG1D,OAFAolB,EAAQkF,IAAgBlF,EAAQkF,IAAgB,GAAKtqB,EAAKlE,OAC1DwuB,IACO,MAETtO,EAAMiK,EAAIO,GACV6D,EA/IWtlB,KA+IC8d,aACZ2E,EAhJWziB,KAgJIyf,cAAcgD,EAASrnB,GACtCkqB,IACOrO,EAAI,CACTjd,KAAM,qBACN+wB,WAAYA,EACZl4B,SAAU4vB,S,6BCzKd,EAAQ,IAERtsB,EAAOC,QAEP,SAAkByC,GAChB,OAAOnC,OAAOmC,GAAOvB,QAAQ,OAAQ,O,6BCLvC,IAAIwsB,EAAa,EAAQ,KAErBxgB,EAAY,EAAQ,KAExBnN,EAAOC,QAAUyoB,EACjBA,EAAWwC,WAAY,EACvBxC,EAAWyC,YAAa,EACxB,IAAI0J,EAAiB,IACjBC,EAAiB,IACjBT,EAAc,KACd7H,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACVqG,EAAiB,IACjBC,EAAkB,IAClBQ,EAAe,IACfC,EAAgB,IAChBP,EAAU,IACVN,EAAO,IACP7E,EAAO,IAEX,SAAS5G,EAAWqC,EAAKroB,EAAOkrB,GAe9B,IAdA,IAKIqH,EACAC,EACAnwB,EACA7E,EACAE,EACAw0B,EACA5L,EACAvsB,EAXAoS,EADOhF,KACWlH,QAAQkM,WAC1B3M,EAAQ,EACRtB,EAAS8B,EAAM9B,OACf0qB,EAAW,GAURppB,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEP+rB,GAAW/tB,IAAciuB,IAI3C7C,GAAYprB,EACZgC,IAKF,IAFAhC,EAAYwC,EAAMpC,OAAO4B,MAEPoyB,EAAlB,CAQA,IAJApyB,IACAopB,GAAYprB,EACZ6E,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPqyB,GAEPr0B,IAAcm0B,IACvBtvB,GAAS7E,EACTgC,IACAhC,EAAYwC,EAAMpC,OAAO4B,IAG3B6C,GAAS7E,EACTgC,IAGF,GAAK6C,GAASrC,EAAMpC,OAAO4B,KAAWqyB,GAAmB7xB,EAAMpC,OAAO4B,EAAQ,KAAOuyB,EAArF,CASA,IALAG,EAAa7vB,EAEb7C,GADAopB,GAAYvmB,EAAQwvB,EAAkBE,GACrB7zB,OACjBmE,EAAQ,GAED7C,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,GAASjuB,IAAc+tB,GAAW/tB,IAAcssB,IAIlElB,GAAYprB,EACZgC,IAOF,GAHA6C,EAAQ,GACRkwB,EAAY3J,GAFZprB,EAAYwC,EAAMpC,OAAO4B,MAIPiyB,EAAM,CAGtB,IAFAjyB,IAEOA,EAAQtB,GAGRu0B,EAFLj1B,EAAYwC,EAAMpC,OAAO4B,KAMzB6C,GAAS7E,EACTgC,IAKF,IAFAhC,EAAYwC,EAAMpC,OAAO4B,MAEPizB,EAAuBjnB,UACvCod,GAAY6I,EAAOpvB,EAAQ7E,EAC3BgC,QACK,CACL,GAAI2M,EACF,OAGF3M,GAAS6C,EAAMnE,OAAS,EACxBmE,EAAQ,IAIZ,IAAKA,EAAO,CACV,KAAO7C,EAAQtB,GAGRw0B,EAFLl1B,EAAYwC,EAAMpC,OAAO4B,KAMzB6C,GAAS7E,EACTgC,IAGFopB,GAAYvmB,EAGd,GAAKA,EAAL,CAOA,IAHAikB,EAAMjkB,EACNA,EAAQ,GAED7C,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,GAASjuB,IAAc+tB,GAAW/tB,IAAcssB,IAIlEznB,GAAS7E,EACTgC,IAcF,GAVA9B,EAAO,MADPF,EAAYwC,EAAMpC,OAAO4B,MAGP2yB,EAChBz0B,EAAOy0B,EACE30B,IAAc40B,EACvB10B,EAAO00B,EACE50B,IAAc60B,IACvB30B,EAAO40B,GAGJ50B,EAGE,KAAI2E,EAuCT,OAlCA,IAHA7C,GADAopB,GAAYvmB,EAAQ7E,GACHU,OACjBmE,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEP9B,GAHG,CAOrB,GAAIF,IAAcssB,EAAW,CAI3B,GAHAtqB,KACAhC,EAAYwC,EAAMpC,OAAO4B,MAEPsqB,GAAatsB,IAAcE,EAC3C,OAGF2E,GAASynB,EAGXznB,GAAS7E,EACTgC,IAKF,IAFAhC,EAAYwC,EAAMpC,OAAO4B,MAEP9B,EAChB,OAGF80B,EAAc5J,EACdA,GAAYvmB,EAAQ7E,EACpBgC,IACAzF,EAAQsI,EACRA,EAAQ,QAvCRA,EAAQ,GACR7C,EAAQopB,EAAS1qB,OA2CnB,KAAOsB,EAAQtB,KACbV,EAAYwC,EAAMpC,OAAO4B,MAEPisB,GAASjuB,IAAc+tB,IAIzC3C,GAAYprB,EACZgC,IAKF,OAFAhC,EAAYwC,EAAMpC,OAAO4B,KAEPhC,IAAcssB,OAAhC,IACMoB,IAIJqH,EAAYlK,EAAIkK,GAAW70B,OAAO6D,IAClC+kB,EAnNSnf,KAmNEmd,OAAOiD,IAnNTpgB,KAmNkBkd,SAASiC,GAAMiM,EAAW,CACnD9wB,eAAe,IAGb1H,IACFy4B,EAAcnK,EAAImK,GAAa90B,OAAO6D,IACtCxH,EAzNOoN,KAyNMmd,OAAOiD,IAzNbpgB,KAyNsBkd,SAAStqB,GAAQy4B,IAGzCnK,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,aACN+wB,WAAYznB,EAAUynB,GACtBn4B,MAAOA,GAAS,KAChBusB,IAAKA,QAOX,SAASmM,EAAuBj1B,GAC9B,OAAOA,IAAcovB,GAAQpvB,IAAco0B,GAAkBp0B,IAAcq0B,EAM7E,SAASa,EAAuBl1B,GAC9B,OAAOA,IAAco0B,GAAkBp0B,IAAcq0B,IAAoB5G,EAAWztB,GAJtFi1B,EAAuBjnB,UAAYohB,G,6BCjQnC,EAAQ,IAER,IAAI3B,EAAa,EAAQ,KAEzB3tB,EAAOC,QAgBP,SAAe8qB,EAAKroB,EAAOkrB,GACzB,IACI1rB,EACAmzB,EACAC,EACAhK,EACAiK,EACA30B,EACAgE,EACAG,EACA7E,EACAs1B,EACAC,EACAC,EACAC,EACAptB,EACAqtB,EACA3wB,EACAlC,EACA8yB,EACA/wB,EACAgxB,EACAnN,EACAoN,EACAC,EACA5C,EAGJ,IA3BWvpB,KA2BDlH,QAAQiM,IAChB,OASF1M,EAAQ,EACR2zB,EAAY,EACZj1B,EAAS8B,EAAM9B,OAAS,EACxBgE,EAAQ,GAER,KAAO1C,EAAQtB,GAAQ,CAQrB,GAPAm1B,EAAYrzB,EAAMP,QAAQqqB,EAAWtqB,GACrC8zB,EAAYtzB,EAAMP,QAAQ8zB,EAAQ/zB,EAAQ,IAEvB,IAAf6zB,IACFA,EAAYrzB,EAAM9B,SAGD,IAAfo1B,GAAoBA,EAAYD,EAAW,CAC7C,GAAIF,EAAYK,EACd,OAGF,MAGFtxB,EAAMqC,KAAKvE,EAAMwE,MAAMhF,EAAO6zB,IAC9BF,IACA3zB,EAAQ6zB,EAAY,EAKtBzK,EAAW1mB,EAAMuC,KAAKqlB,GACtB6I,EAAazwB,EAAM4H,OAAO,EAAG,GAAG,IAAM,GACtCtK,EAAQ,EACRtB,EAASy0B,EAAWz0B,OACpBi1B,IACAP,GAAY,EACZG,EAAQ,GAER,KAAOvzB,EAAQtB,GAAQ,CAGrB,IAFAV,EAAYm1B,EAAW/0B,OAAO4B,MAEZ+zB,EAAQ,CAGxB,GAFAT,EAAU,MAEQ,IAAdF,GACF,IAAc,IAAVlC,EACF,YAGFqC,EAAMxuB,KAAKquB,GACXA,GAAY,EAGdlC,GAAQ,OACH,GAAIlzB,IAAc0vB,EACvB4F,GAAU,EACVF,EAAYA,GAAaa,OACpB,GAAIj2B,IAAcu0B,EAErBa,EADEA,IAAcc,EACJC,EACHb,GAAWF,IAAca,EACtBG,EAEAF,OAET,IAAKzI,EAAWztB,GACrB,OAGFgC,KAGgB,IAAdozB,GACFG,EAAMxuB,KAAKquB,GAKb,GAAIG,EAAM70B,OAAS21B,EACjB,OAKF,GAAI3I,EACF,OAAO,EAKT7qB,GAAY,EACZ+yB,EAAO,GACPnN,EAAQoC,EAAIO,GAAUW,MAAM,CAC1BpoB,KAAM,QACN4xB,MAAOA,EACP/4B,SAAUo5B,IAGZ,OAAS/yB,EAAW8yB,GAAW,CAwB7B,IAvBA/wB,EAAOF,EAAM7B,GACbwyB,EAAM,CACJ1xB,KAAM,WACNnH,SAAU,IAKRqG,GACFgoB,EAAIyB,GAKNzB,EAAIjmB,GAAMmnB,MAAMsJ,EAAK5M,GACrB/nB,EAASkE,EAAKlE,OAAS,EACvBsB,EAAQ,EACR6C,EAAQ,GACR2wB,EAAO,GACPC,GAAW,EACXptB,EAAQ,KACRqtB,EAAU,KAEH1zB,EAAQtB,GAGb,IAFAV,EAAY4E,EAAKxE,OAAO4B,MAENisB,GAASjuB,IAAc+tB,EAAzC,CAWA,GAAkB,KAAd/tB,GAAoBA,IAAc+1B,EACpC,GAAIN,EACF5K,EAAI7qB,OACC,CACL,GAAIA,GAAa01B,EAAS,CACxB7wB,GAAS7E,EACTgC,IACA,UAGGwzB,IAAQx1B,GAAey1B,IAC1BrK,EAAWoK,EAEP3wB,EAAMnE,OAAS,IACbV,GACForB,GAAYvmB,EAAMmC,MAAM,EAAGnC,EAAMnE,OAAS,GAC1CmE,EAAQA,EAAMzE,OAAOyE,EAAMnE,OAAS,KAEpC0qB,GAAYvmB,EACZA,EAAQ,KAIZE,EAAM8lB,EAAI9lB,MACV8lB,EAAIO,EAAJP,CAAc,CACZlnB,KAAM,YACNnH,SArMDmN,KAqMgB0f,eAAemM,EAAMzwB,IACnCswB,IAGLxK,EAAIhmB,EAAQ7E,GACZ6E,EAAQ,GACR2wB,EAAO,QAeT,GAZI3wB,IACF2wB,GAAQ3wB,EACRA,EAAQ,IAGV2wB,GAAQx1B,EAEJA,IAAcm0B,GAAenyB,IAAUtB,EAAS,IAClD80B,GAAQ5wB,EAAKxE,OAAO4B,EAAQ,GAC5BA,KAGEhC,IAAcyuB,EAAQ,CAGxB,IAFApmB,EAAQ,EAEDzD,EAAKxE,OAAO4B,EAAQ,KAAOhC,GAChCw1B,GAAQx1B,EACRgC,IACAqG,IAGGqtB,EAEMrtB,GAASqtB,IAClBA,EAAU,GAFVA,EAAUrtB,EAOhBotB,GAAW,EACXzzB,SA3EMwzB,EACF3wB,GAAS7E,EAET6qB,EAAI7qB,GAGNgC,IA0ECa,GACHgoB,EAAIyB,EAAY6I,GAIpB,OAAO1M,GAtQT,IAAI0L,EAAc,KACd1F,EAAS,IACTiB,EAAS,IACTqG,EAAS,IACTxB,EAAU,IACVxG,EAAU,IACVzB,EAAY,KACZ2B,EAAQ,KACRoI,EAAoB,EACpBL,EAAiB,EACjBE,EAAmB,OACnBC,EAAqB,SACrBC,EAAoB,QACpBH,EAAmB,M,6BClBvB,EAAQ,IAER,IAAI1oB,EAAO,EAAQ,KAEfnL,EAAU,EAAQ,KAElBk0B,EAAoB,EAAQ,KAE5B1H,EAAY,EAAQ,KAExB9uB,EAAOC,QAOP,SAAmB8qB,EAAKroB,EAAOkrB,GAC7B,IAQI7qB,EACAuoB,EACAprB,EACA+O,EACAhK,EAXApC,EADOgH,KACSlH,QAChBkM,EAAahM,EAASgM,WACtBD,EAAM/L,EAAS+L,IACf9G,EAJO+B,KAIWke,gBAClBlgB,EALOgC,KAKa+d,mBACpB1lB,EAAQQ,EAAMP,QAAQqqB,GACtB5rB,EAAS8B,EAAM9B,OAOnB,KAAOsB,EAAQtB,GAAQ,CAErB,IAAe,IAAXsB,EAAc,CAChBA,EAAQtB,EACR,MAKF,GAAI8B,EAAMpC,OAAO4B,EAAQ,KAAOsqB,EAC9B,MAMF,GAAI3d,EAAY,CAId,IAHAI,EAAO,EACPlM,EAAWb,EAAQ,EAEZa,EAAWnC,GAAQ,CAGxB,IAFAV,EAAYwC,EAAMpC,OAAOyC,MAEPorB,EAAO,CACvBlf,EAAO6hB,EACP,MACK,GAAI5wB,IAAc+tB,EAGvB,MAFAhf,IAKFlM,IAGF,GAAIkM,GAAQ6hB,EAAU,CACpB5uB,EAAQQ,EAAMP,QAAQqqB,EAAWtqB,EAAQ,GACzC,UAQJ,GAJAopB,EAAW5oB,EAAMwE,MAAMhF,EAAQ,GAI3B4sB,EAAUjnB,EAAcC,EA3DnB+B,KA2DqC,CAACkhB,EAAKO,GAAU,IAC5D,MAOF,GAAIxjB,EAAWwgB,KAAKvnB,KAnEX8I,KAmEsBkhB,EAAKO,GAAU,KAnErCzhB,KAmEoDsd,QAAUtY,GAAcD,IAAQtM,EAAQmL,EAAKrM,KAAKkqB,GAAUhrB,OAAO,KAC9H,MAMF,GAHAyC,EAAWb,GAGI,KAFfA,EAAQQ,EAAMP,QAAQqqB,EAAWtqB,EAAQ,KAEkB,KAAvCuL,EAAK/K,EAAMwE,MAAMnE,EAAUb,IAAgB,CAC7DA,EAAQa,EACR,OAMJ,GAFAuoB,EAAW5oB,EAAMwE,MAAM,EAAGhF,GAEH,KAAnBuL,EAAK6d,GAEP,OADAP,EAAIO,GACG,KAKT,GAAIsC,EACF,OAAO,EAKT,OAFA3oB,EAAM8lB,EAAI9lB,MACVqmB,EAAWkL,EAAkBlL,GACtBP,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,YACNnH,SAjGSmN,KAiGM0f,eAAe+B,EAAUrmB,MAxG5C,IAAIunB,EAAY,KACZ2B,EAAQ,KACRF,EAAU,IACV6C,EAAW,G,6BCdf,EAAQ,IAER,IAAI2F,EAAS,EAAQ,KAKrB,SAAS3N,EAAOiC,EAAKroB,EAAOkrB,GAC1B,IACI1tB,EACAlB,EAEJ,GAAwB,OAApB0D,EAAMpC,OAAO,KACfJ,EAAYwC,EAAMpC,OAAO,IAEe,IAP/BuJ,KAOAif,OAAO3mB,QAAQjC,IAEtB,QAAI0tB,IAKF5uB,EADgB,OAAdkB,EACK,CACL2D,KAAM,SAGD,CACLA,KAAM,OACNnB,MAAOxC,GAIJ6qB,EAAI,KAAO7qB,EAAX6qB,CAAsB/rB,IA5BnCgB,EAAOC,QAAU6oB,EACjBA,EAAO4N,QAAUD,G,6BCLjB,EAAQ,IAERz2B,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,OAAOrO,EAAMP,QAAQ,KAAM4O,K,6BCL7B,IAAI4c,EAAa,EAAQ,KAErB3G,EAAS,EAAQ,KAEjByP,EAAS,EAAQ,KAErBz2B,EAAOC,QAAU8oB,EACjBA,EAAS2N,QAAUD,EACnB1N,EAASqC,WAAY,EACrB,IAAI+I,EAAO,IACP7E,EAAO,IACPqH,EAAY,IACZC,EAAU,IACVC,EAAS,UACTC,EAAgBD,EAAOj2B,OAG3B,SAASmoB,EAASgC,EAAKroB,EAAOkrB,GAC5B,IACItC,EACA1qB,EACAsB,EACA6C,EACA7E,EACA62B,EACA/lB,EACA/L,EACAqnB,EACAxkB,EACAqnB,EAEJ,GAAIzsB,EAAMpC,OAAO,KAAO6zB,EAAxB,CAcA,IAVOtqB,KACPyhB,EAAW,GACX1qB,EAAS8B,EAAM9B,OACfsB,EAAQ,EACR6C,EAAQ,GACRgyB,GAAiB,EACjB/lB,EAAO,GACP9O,IACAopB,EAAW6I,EAEJjyB,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,KAErByrB,EAAWztB,IAAcA,IAAcovB,GAAQpvB,IAAcy2B,GAA2B,MAAdz2B,GAAqBwC,EAAMpC,OAAO4B,EAAQ,KAAO00B,KAI/H7xB,GAAS7E,EACTgC,IAGF,GAAK6C,EAAL,CAUA,GANAiM,GAAQjM,EACRA,EAAQ,GAERiM,GADA9Q,EAAYwC,EAAMpC,OAAO4B,GAEzBA,IAEIhC,IAAcy2B,EAChBI,GAAiB,MACZ,CACL,GAAkB,MAAd72B,GAAqBwC,EAAMpC,OAAO4B,EAAQ,KAAO00B,EACnD,OAGF5lB,GAAQ4lB,EACR10B,IAGF,KAAOA,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,IAErByrB,EAAWztB,IAAcA,IAAcovB,IAI3CvqB,GAAS7E,EACTgC,IAKF,GAFAhC,EAAYwC,EAAMpC,OAAO4B,GAEpB6C,GAAS7E,IAAcovB,EAM5B,QAAI1B,IAKJtB,EADAtb,GAAQjM,EAERumB,GAAYta,EAAO9Q,GACnB+E,EAAM8lB,EAAI9lB,OACNJ,SACJI,EAAIC,SAEA6xB,IACE/lB,EAAK9J,MAAM,EAAG4vB,GAAenuB,gBAAkBkuB,GACjDvK,EAAUA,EAAQ3kB,OAAOmvB,GACzB7xB,EAAIJ,QAAUiyB,EACd7xB,EAAIC,QAAU4xB,GAEd9lB,EAAO6lB,EAAS7lB,GAMpBlJ,EApFO+B,KAoFWgf,iBApFXhf,KAqFFgf,iBAAmB,CACtBxkB,KAAMyD,EAAWzD,MAEnB8qB,EAxFOtlB,KAwFK6d,YACZ4E,EAzFOziB,KAyFQ0f,eAAe+C,EAASrnB,GAzFhC4E,KA0FFgf,iBAAmB/gB,EACxBqnB,IACOpE,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,OACNpH,MAAO,KACPusB,IAAKhC,EAAOhW,EAAM,CAChB7M,eAAe,IAEjBzH,SAAU4vB,S,6BCrId,EAAQ,IAER,IAAItF,EAAS,EAAQ,KAEjB2G,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAErBz2B,EAAOC,QAAU+oB,EACjBA,EAAI0N,QAAUD,EACdzN,EAAIoC,WAAY,EAChB,IAAIkJ,EAAiB,IACjBC,EAAkB,IAClBQ,EAAe,IACfC,EAAgB,IAChBb,EAAO,IACPwC,EAAY,IAGZK,EAAkB,UAClBC,EAAY,CAHI,UACC,WAE2BD,GAC5CE,EAAmBD,EAAUr2B,OAEjC,SAASooB,EAAI+B,EAAKroB,EAAOkrB,GACvB,IACItC,EACAgB,EACApsB,EACAgC,EACAa,EACAo0B,EACApF,EACAnxB,EACAmE,EACAqyB,EACAC,EACAlI,EAEJ,GAdWtlB,KAcDlH,QAAQiM,IAAlB,CAQA,IAJA0c,EAAW,GACXppB,GAAS,EACTtB,EAASs2B,IAEAh1B,EAAQtB,GAIf,GAHAu2B,EAAWF,EAAU/0B,IACrB6vB,EAAQrvB,EAAMwE,MAAM,EAAGiwB,EAASv2B,SAEtB+H,gBAAkBwuB,EAAU,CACpC7L,EAAWyG,EACX,MAIJ,GAAKzG,EAAL,CASA,IALAppB,EAAQopB,EAAS1qB,OACjBA,EAAS8B,EAAM9B,OACfmE,EAAQ,GACRqyB,EAAa,EAENl1B,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,IAErByrB,EAAWztB,IAAcA,IAAci0B,KAIzB,MAAdj0B,GAAmC,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,GAAoC,MAAdA,GAAmC,MAAdA,IACtJm3B,EAAgB30B,EAAMpC,OAAO4B,EAAQ,MAEfyrB,EAAW0J,MAK/Bn3B,IAAc60B,GAAgB70B,IAAco0B,GAC9C8C,IAGEl3B,IAAc80B,GAAiB90B,IAAcq0B,OAC/C6C,EAEiB,KAKnBryB,GAAS7E,EACTgC,IAGF,GAAK6C,EAAL,CAOA,GAFAunB,EADAhB,GAAYvmB,EAGRoyB,IAAaH,EAAiB,CAGhC,IAAkB,KAFlBj0B,EAAWgC,EAAM5C,QAAQw0B,KAEF5zB,IAAanC,EAAS,EAC3C,OAGF0rB,EAAUA,EAAQ3kB,OAAOqvB,EAAgBp2B,QAK3C,QAAIgtB,IAIJuB,EA/FWtlB,KA+FC6d,YACZ4E,EAhGWziB,KAgGI0f,eAAe+C,EAASvB,EAAI9lB,OAC3CkqB,IACOpE,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,OACNpH,MAAO,KACPusB,IAAKhC,EAAOsE,EAAU,CACpBnnB,eAAe,IAEjBzH,SAAU4vB,U,6BChId,EAAQ,IAERtsB,EAAOC,QAGP,SAAgByC,EAAOqO,GACrB,IAGIhO,EAHAnC,EAASq2B,EAAUr2B,OACnBsB,GAAS,EACT4L,GAAO,EAGX,IAAKjE,KAAKlH,QAAQiM,IAChB,OAAQ,EAGV,OAAS1M,EAAQtB,IAGG,KAFlBmC,EAAWL,EAAMP,QAAQ80B,EAAU/0B,GAAQ6O,MAEnBhO,EAAW+K,IAAgB,IAATA,KACxCA,EAAM/K,GAIV,OAAO+K,GApBT,IAAImpB,EAAY,CAAC,WAAY,UAAW,Y,6BCHxC,EAAQ,KAER,IAAI7M,EAAe,EAAQ,KAEvBqM,EAAS,EAAQ,KAEjB3lB,EAAM,EAAQ,KAAgBA,IAElC9Q,EAAOC,QAAUq3B,EACjBA,EAAWZ,QAAUD,EACrB,IAAIc,EAA4B,QAC5BC,EAA6B,UAEjC,SAASF,EAAWvM,EAAKroB,EAAOkrB,GAC9B,IAEI1tB,EACAorB,EAFA1qB,EAAS8B,EAAM9B,OAInB,KAAwB,MAApB8B,EAAMpC,OAAO,IAAcM,EAAS,KAIxCV,EAAYwC,EAAMpC,OAAO,IAEpB8pB,EAAalqB,IAA4B,MAAdA,GAAmC,MAAdA,GAAmC,MAAdA,KAI1EorB,EAAW5oB,EAAMqvB,MAAMjhB,KAQvB,QAAI8c,IAIJtC,EAAWA,EAAS,IA3BTzhB,KA6BDwd,QAAUkQ,EAA0Bn3B,KAAKkrB,GA7BxCzhB,KA8BJwd,QAAS,EA9BLxd,KA+BKwd,QAAUmQ,EAA2Bp3B,KAAKkrB,KA/B/CzhB,KAgCJwd,QAAS,GAGT0D,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,OACNnB,MAAO4oB,O,6BCnDX,IAAIqC,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAErBz2B,EAAOC,QAAU+Q,EACjBA,EAAK0lB,QAAUD,EACf,IAAIxwB,EAAM,GAAGnF,eACTuzB,EAAc,KACdC,EAAiB,IACjBC,EAAkB,IAClBQ,EAAe,IACfC,EAAgB,IAChBb,EAAO,IACP7E,EAAO,IACPX,EAAS,IAMT8I,EAAe,CACnB,IANqB,IAOrB,IANqB,KAUjBC,EAA0B,GAK9B,SAAS1mB,EAAK+Z,EAAKroB,EAAOkrB,GACxB,IAOI+J,EACApvB,EACAqtB,EACAX,EACAC,EACAP,EACAiD,EACA3H,EACA4H,EACAvL,EACA9hB,EACA5J,EACAnE,EACA8yB,EACAxqB,EACAikB,EACA/jB,EACAkqB,EACAnwB,EAxBAssB,EAAW,GACXppB,EAAQ,EACRhC,EAAYwC,EAAMpC,OAAO,GACzByO,EAJOlF,KAISlH,QAAQoM,SACxBF,EALOhF,KAKWlH,QAAQkM,WAC1BD,EANO/E,KAMIlH,QAAQiM,IA8BvB,GARkB,MAAd1O,IACF23B,GAAU,EACVvM,EAAWprB,EACXA,EAAYwC,EAAMpC,SAAS4B,IAKzBhC,IAAco0B,IAObuD,IA3CMhuB,KA2CUwd,QAArB,CAeA,IAXAiE,GAAYprB,EACZ6E,EAAQ,GACR7C,IAGAtB,EAAS8B,EAAM9B,OAEf2uB,EAAQ,GADRtqB,EAAM8lB,EAAI9lB,OAENJ,QAAU3C,EACd+C,EAAIC,QAAUhD,EAEPA,EAAQtB,GAAQ,CAIrB,GAFA+zB,EADAz0B,EAAYwC,EAAMpC,OAAO4B,GAGrBhC,IAAcyuB,EAAQ,CAIxB,IAFApmB,EAAQ,EAED7F,EAAMpC,OAAO4B,EAAQ,KAAOysB,GACjCgG,GAAYz0B,EACZgC,IACAqG,IAGGqtB,EAEMrtB,GAASqtB,IAClBA,EAAU,GAFVA,EAAUrtB,OAIP,GAAIrI,IAAcm0B,EAEvBnyB,IACAyyB,GAAYjyB,EAAMpC,OAAO4B,QAKpB,GAAM0zB,IAAWhnB,GAAQ1O,IAAco0B,GAEvC,KAAMsB,GAAWhnB,IAAQ1O,IAAcq0B,EAAiB,CAC7D,IAAIhF,EAEG,CAGL,IAAKxgB,EACH,KAAO7M,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,EAAQ,GAE5ByrB,EAAWztB,KAIhBy0B,GAAYz0B,EACZgC,IAIJ,GAAIQ,EAAMpC,OAAO4B,EAAQ,KAAO6yB,EAC9B,OAGFJ,GAAYI,EACZ4C,GAAS,EACTz1B,IACA,MAxBAqtB,UAHFA,IA+BFxqB,GAAS4vB,EACTA,EAAW,GACXzyB,IAKF,GAAKy1B,EAAL,CASA,IALArL,EAAUvnB,EACVumB,GAAYvmB,EAAQ4vB,EACpBzyB,IAGOA,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpByrB,EAAWztB,KAIhBorB,GAAYprB,EACZgC,IAUF,GALAhC,EAAYwC,EAAMpC,OAAO4B,GACzB+tB,EAAUphB,EAAa6oB,EAA0BD,EACjD1yB,EAAQ,GACRkwB,EAAY3J,EAERprB,IAAci0B,EAAM,CAItB,IAHAjyB,IACA+yB,GAAad,EAENjyB,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPotB,GAHG,CAOrB,GAAIzgB,GAA4B,OAAd3O,EAChB,OAGF6E,GAAS7E,EACTgC,IAGF,GAAIQ,EAAMpC,OAAO4B,KAAWotB,EAC1B,OAGFhE,GAAY6I,EAAOpvB,EAAQuqB,EAC3BtG,EAAMjkB,EACN7C,QACK,CAIL,IAHAhC,EAAY,KACZy0B,EAAW,GAEJzyB,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,IAErByyB,IAAY1uB,EAAIlF,KAAKkvB,EAAS/vB,KAHb,CAOrB,GAAIytB,EAAWztB,GAAY,CACzB,IAAK6O,EACH,MAGF4lB,GAAYz0B,MACP,CACL,GAAIA,IAAc60B,EAChBxF,SACK,GAAIrvB,IAAc80B,EAAe,CACtC,GAAc,IAAVzF,EACF,MAGFA,IAGFxqB,GAAS4vB,EACTA,EAAW,GAEPz0B,IAAcm0B,IAChBtvB,GAASsvB,EACTn0B,EAAYwC,EAAMpC,SAAS4B,IAG7B6C,GAAS7E,EAGXgC,IAIF8mB,EAAMjkB,EACN7C,GAFAopB,GAAYvmB,GAEKnE,OAOnB,IAFAmE,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpByrB,EAAWztB,KAIhB6E,GAAS7E,EACTgC,IAOF,GAJAhC,EAAYwC,EAAMpC,OAAO4B,GACzBopB,GAAYvmB,EAGRA,GAASkB,EAAIlF,KAAKkvB,EAAS/vB,GAY7B,GAXAgC,IACAopB,GAAYprB,EACZ6E,EAAQ,GACRyF,EAASylB,EAAQ/vB,GACjBg1B,EAAc5J,EAOVzc,EAAY,CACd,KAAO3M,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPsI,GAIdtK,IAAcm0B,IAChBtvB,GAASsvB,EACTn0B,EAAYwC,EAAMpC,SAAS4B,IAG7BA,IACA6C,GAAS7E,EAKX,IAFAA,EAAYwC,EAAMpC,OAAO4B,MAEPsI,EAChB,OAOF,IAJA/N,EAAQsI,EACRumB,GAAYvmB,EAAQ7E,EACpBgC,IAEOA,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpByrB,EAAWztB,KAIhBorB,GAAYprB,EACZgC,SAKF,IAFAyyB,EAAW,GAEJzyB,EAAQtB,GAAQ,CAGrB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPsI,EACZotB,IACF7yB,GAASyF,EAASmqB,EAClBA,EAAW,IAGbiD,GAAY,OACP,GAAKA,EAEL,IAAI13B,IAAc80B,EAAe,CACtC1J,GAAYvmB,EAAQyF,EAASmqB,EAC7Bl4B,EAAQsI,EACR,MACS4oB,EAAWztB,GACpBy0B,GAAYz0B,GAEZ6E,GAASyF,EAASmqB,EAAWz0B,EAC7By0B,EAAW,GACXiD,GAAY,QAVZ7yB,GAAS7E,EAaXgC,IAKN,GAAIQ,EAAMpC,OAAO4B,KAAW8yB,EAM5B,QAAIpH,IAIJtC,GAAY0J,EACZhM,EA/UWnf,KA+UAmd,OAAOiD,IA/UPpgB,KA+UgBkd,SAASiC,GAAM+B,EAAIkK,GAAW70B,OAAO6D,IAAK,CACnEE,eAAe,IAGb1H,IACFy4B,EAAcnK,EAAImK,GAAa90B,OAAO6D,IACtCxH,EArVSoN,KAqVImd,OAAOiD,IArVXpgB,KAqVoBkd,SAAStqB,GAAQy4B,IAGhDl2B,EAAO,CACL6E,KAAMg0B,EAAU,QAAU,OAC1Bp7B,MAAOA,GAAS,KAChBusB,IAAKA,GAGH6O,EACF74B,EAAKf,IA/VI4L,KA+VOmd,OAAOiD,IA/VdpgB,KA+VuBkd,SAASuF,GAAUrnB,IAAQ,MAE3DkqB,EAjWStlB,KAiWG6d,YACZ1oB,EAAKtC,SAlWImN,KAkWY0f,eAAe+C,EAASrnB,GAC7CkqB,KAGKpE,EAAIO,EAAJP,CAAc/rB,MA3WvB04B,EAZqB,SAarBA,EAZqB,SAarBA,EAAwB3C,GAAgBC,G,6BC7BxC,EAAQ,IAER,IAAIrH,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAEjBtpB,EAAY,EAAQ,KAExBnN,EAAOC,QAAUqD,EACjBA,EAAUozB,QAAUD,EACpB,IAAIqB,EAAS,OACTC,EAAU,QACVC,EAAa,WACbC,EAA0B,WAC1BC,EAA2B,YAC3BC,EAAsB,OACtB3D,EAAU,IACVH,EAAc,KACdC,EAAiB,IACjBC,EAAkB,IAEtB,SAASjxB,EAAUynB,EAAKroB,EAAOkrB,GAC7B,IAQItB,EACAsI,EACA3vB,EACAjG,EACAmwB,EACApqB,EACAqzB,EACA7I,EAdArvB,EAAYwC,EAAMpC,OAAO,GACzB4B,EAAQ,EACRtB,EAAS8B,EAAM9B,OACf0qB,EAAW,GACX+M,EAAQ,GACRx0B,EAAOi0B,EACPQ,EAAgBL,EAiBpB,GANkB,MAAd/3B,IACF2D,EAAOk0B,EACPM,EAAQn4B,EACRA,EAAYwC,EAAMpC,SAAS4B,IAGzBhC,IAAco0B,EAAlB,CASA,GALApyB,IACAm2B,GAASn4B,EACT6E,EAAQ,GA9BG8E,KAiCFlH,QAAQmM,WAAapM,EAAMpC,OAAO4B,KAAWsyB,EAAS,CAG7D,GAAI3wB,IAASk0B,EACX,OAGFM,GAAS7D,EACTtyB,IACA2B,EAAOm0B,EAOT,IAFAzI,EAAQ,EAEDrtB,EAAQtB,GAAQ,CAGrB,IAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPoyB,EAChB8D,GAAY,EACZ7I,SACK,GAAIrvB,IAAcq0B,EAAiB,CACxC,IAAKhF,EACH,MAGFA,IAGErvB,IAAcm0B,IAChBtvB,GAASsvB,EACTn0B,EAAYwC,EAAMpC,SAAS4B,IAG7B6C,GAAS7E,EACTgC,IAOF,GAJAopB,EAAWvmB,EACXunB,EAAUvnB,GACV7E,EAAYwC,EAAMpC,OAAO4B,MAEPqyB,EAAlB,CAQA,IAJAryB,IACAopB,GAAYprB,EACZ6E,EAAQ,GAED7C,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,GAEpByrB,EAAWztB,KAIhB6E,GAAS7E,EACTgC,IAMF,GAHAhC,EAAYwC,EAAMpC,OAAO4B,GAGrB2B,IAASm0B,GAAc93B,IAAco0B,EAAgB,CAKvD,IAJAM,EAAa,GACb7vB,GAAS7E,EACTgC,IAEOA,EAAQtB,IACbV,EAAYwC,EAAMpC,OAAO4B,MAEPoyB,GAAkBp0B,IAAcq0B,GAI9Cr0B,IAAcm0B,IAChBO,GAAcP,EACdn0B,EAAYwC,EAAMpC,SAAS4B,IAG7B0yB,GAAc10B,EACdgC,KAGFhC,EAAYwC,EAAMpC,OAAO4B,MAEPqyB,GAChB+D,EAAgB1D,EAAauD,EAAsBD,EACnDnzB,GAAS6vB,EAAa10B,EACtBgC,KAEA0yB,EAAa,GAGftJ,GAAYvmB,EACZA,EAAQ,OACH,CACL,IAAKunB,EACH,OAGFsI,EAAatI,EAKf,GAAIgM,IAAkBH,IAAuBC,EAM7C,OAFA9M,EAAW+M,EAAQ/M,EAEfznB,IAASi0B,GAnJFjuB,KAmJiBwd,OACnB,OAKLuG,IAIA/pB,IAASm0B,IAAwC,IAA1B1L,EAAQnqB,QAAQ,KAClC4oB,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,WACNnH,SAAUmN,KAAK0f,eAAe+C,EAASvB,EAAI9lB,WAI/CA,EAAM8lB,EAAI9lB,OACNJ,QAAUwzB,EAAMz3B,OACpBqE,EAAIC,QAAUmzB,EAAMz3B,OAEpB5B,EAAO,CACL6E,KAAMA,EAAO,YACb+wB,WAAYznB,EAHdynB,EAAa0D,IAAkBH,EAAsBvD,EAAatI,IAM9DzoB,IAASi0B,GAAUj0B,IAASk0B,IAC9B/4B,EAAKs5B,cAAgBA,GAGnBz0B,IAASi0B,GACX3I,EAlLStlB,KAkLG6d,YACZ1oB,EAAKtC,SAnLImN,KAmLY0f,eAAe+C,EAASrnB,GAC7CkqB,KACStrB,IAASk0B,IAClB/4B,EAAKf,IAtLI4L,KAsLOmd,OAAOiD,IAtLdpgB,KAsLuBkd,SAASuF,GAAUrnB,IAAQ,MAGtD8lB,EAAIO,EAAJP,CAAc/rB,S,6BC/MvB,IAAIyO,EAAO,EAAQ,KAEfkgB,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAErBz2B,EAAOC,QAAUgpB,EACjBA,EAAOyN,QAAUD,EACjB,IAAI9G,EAAa,IACbE,EAAe,IAEnB,SAAS5G,EAAO8B,EAAKroB,EAAOkrB,GAC1B,IAGI3oB,EACA8J,EACAvE,EACAzF,EACAumB,EACA1qB,EACAkD,EARA5B,EAAQ,EACRhC,EAAYwC,EAAMpC,OAAO4B,GAS7B,KAAIhC,IAAcyvB,GAAczvB,IAAc2vB,GAAgBntB,EAAMpC,SAAS4B,KAAWhC,IAIxF6O,EAfWlF,KAeKlH,QAAQoM,SAExBuc,GADA9gB,EAAStK,GACWsK,EACpB5J,EAAS8B,EAAM9B,OACfsB,IACA6C,EAAQ,GACR7E,EAAY,GAER6O,GAAY4e,EAAWjrB,EAAMpC,OAAO4B,MAIxC,KAAOA,EAAQtB,GAAQ,CAIrB,GAHAkD,EAAO5D,KACPA,EAAYwC,EAAMpC,OAAO4B,MAEPsI,GAAU9H,EAAMpC,OAAO4B,EAAQ,KAAOsI,GAAYuE,GAAa4e,EAAW7pB,MAC1F5D,EAAYwC,EAAMpC,OAAO4B,EAAQ,MAEfsI,EAAQ,CACxB,IAAKiD,EAAK1I,GACR,OAKF,QAAI6oB,KAIJ3oB,EAAM8lB,EAAI9lB,OACNJ,QAAU,EACdI,EAAIC,QAAU,EACP6lB,EAAIO,EAAWvmB,EAAQumB,EAAvBP,CAAiC,CACtClnB,KAAM,SACNnH,SAlDGmN,KAkDY0f,eAAexkB,EAAOE,MAKtC8J,GAA0B,OAAd7O,IACf6E,GAAS7E,EACTA,EAAYwC,EAAMpC,SAAS4B,IAG7B6C,GAAS7E,EACTgC,O,6BCzEJ,EAAQ,IAERlC,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,IAAIwnB,EAAW71B,EAAMP,QAAQ,KAAM4O,GAC/BynB,EAAa91B,EAAMP,QAAQ,KAAM4O,GAErC,IAAoB,IAAhBynB,EACF,OAAOD,EAGT,IAAkB,IAAdA,EACF,OAAOC,EAGT,OAAOA,EAAaD,EAAWC,EAAaD,I,6BChB9C,IAAI9qB,EAAO,EAAQ,KAEfgrB,EAAO,EAAQ,KAEf9K,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAErBz2B,EAAOC,QAAUipB,EACjBA,EAASwN,QAAUD,EACnB,IAAI9G,EAAa,IACbE,EAAe,IAEnB,SAAS3G,EAAS6B,EAAKroB,EAAOkrB,GAC5B,IAGI3oB,EACA8J,EACAvE,EACAzF,EACAumB,EACA1qB,EACAkD,EARA5B,EAAQ,EACRhC,EAAYwC,EAAMpC,OAAO4B,GAS7B,KAAIhC,IAAcyvB,GAAczvB,IAAc2vB,IAI9C9gB,EAfWlF,KAeKlH,QAAQoM,SACxBuc,EAAWprB,EACXsK,EAAStK,EACTU,EAAS8B,EAAM9B,OACfsB,IACA6C,EAAQ,GACR7E,EAAY,GAER6O,GAAY4e,EAAWjrB,EAAMpC,OAAO4B,MAIxC,KAAOA,EAAQtB,GAAQ,CAIrB,GAHAkD,EAAO5D,KACPA,EAAYwC,EAAMpC,OAAO4B,MAEPsI,GAAYuE,GAAa4e,EAAW7pB,IAAQ,CAG5D,IAFA5D,EAAYwC,EAAMpC,SAAS4B,MAETsI,EAAQ,CACxB,IAAKiD,EAAK1I,IAAUjB,IAAS0G,EAC3B,OAGF,IAAKuE,GAAYvE,IAAWqlB,GAAgB4I,EAAKv4B,GAAY,CAC3D6E,GAASyF,EACT,SAKF,QAAIojB,KAIJ3oB,EAAM8lB,EAAI9lB,OACNJ,SACJI,EAAIC,SACG6lB,EAAIO,EAAWvmB,EAAQyF,EAAvBugB,CAA+B,CACpClnB,KAAM,WACNnH,SAvDGmN,KAuDY0f,eAAexkB,EAAOE,MAIzCF,GAASyF,EAGNuE,GAA0B,OAAd7O,IACf6E,GAAS7E,EACTA,EAAYwC,EAAMpC,SAAS4B,IAG7B6C,GAAS7E,EACTgC,O,6BClFJlC,EAAOC,QAKP,SAAuBC,GACrB,OAAOC,EAAGC,KAA0B,iBAAdF,EAAyBG,EAASH,GAAaA,EAAUI,OAAO,KALxF,IAAID,EAAWE,OAAOC,aAClBL,EAAK,M,6BCFT,EAAQ,IAERH,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,IAAIwnB,EAAW71B,EAAMP,QAAQ,IAAK4O,GAC9BynB,EAAa91B,EAAMP,QAAQ,IAAK4O,GAEpC,IAAoB,IAAhBynB,EACF,OAAOD,EAGT,IAAkB,IAAdA,EACF,OAAOC,EAGT,OAAOA,EAAaD,EAAWC,EAAaD,I,6BChB9C,IAAI5K,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAErBz2B,EAAOC,QAAUy4B,EACjBA,EAAchC,QAAUD,EACxB,IAAI/H,EAAU,IACViK,EAAS,KAEb,SAASD,EAAc3N,EAAKroB,EAAOkrB,GACjC,IAKI1rB,EACAtB,EACAqE,EANA/E,EAAY,GACZ04B,EAAW,GACXC,EAAY,GACZvN,EAAW,GAKf,GATWzhB,KASDlH,QAAQiM,KAAOlM,EAAMpC,OAAO,KAAOouB,GAAWhsB,EAAMpC,OAAO,KAAOouB,IAAWf,EAAWjrB,EAAMpC,OAAO,IAU/G,IANA4B,EAAQ,EACRtB,EAAS8B,EAAM9B,QACfqE,EAAM8lB,EAAI9lB,OACNJ,QAAU,EACdI,EAAIC,QAAU,IAELhD,EAAQtB,GAAQ,CAGvB,MAFAV,EAAYwC,EAAMpC,OAAO4B,MAEPwsB,GAAWkK,IAAalK,GAAamK,GAAclL,EAAWkL,IAE9E,QAAIjL,GAIG7C,EAAI4N,EAASrN,EAAWqN,EAAxB5N,CAAgC,CACrClnB,KAAM,SACNnH,SA9BKmN,KA8BU0f,eAAe+B,EAAUrmB,KAI5CqmB,GAAYsN,EACZC,EAAYD,EACZA,EAAW14B,K,6BC9Cf,EAAQ,IAERF,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,OAAOrO,EAAMP,QAAQ,KAAM4O,K,6BCL7B,IAAI4c,EAAa,EAAQ,KAErB8I,EAAS,EAAQ,KAErBz2B,EAAOC,QAAU64B,EACjBA,EAAWpC,QAAUD,EACrB,IAAI9H,EAAS,IAGb,SAASmK,EAAW/N,EAAKroB,EAAOkrB,GAc9B,IAbA,IAIII,EACA2G,EACApsB,EACAwwB,EACAzN,EACAprB,EACA84B,EACAj1B,EAXAnD,EAAS8B,EAAM9B,OACfsB,EAAQ,EACR6C,EAAQ,GACRk0B,EAAY,GAUT/2B,EAAQtB,GACT8B,EAAMpC,OAAO4B,KAAWysB,GAI5B5pB,GAAS4pB,EACTzsB,IAGF,GAAK6C,EAAL,CAUA,IANAumB,EAAWvmB,EACXg0B,EAAe72B,EACf6C,EAAQ,GACRhB,EAAOrB,EAAMpC,OAAO4B,GACpBqG,EAAQ,EAEDrG,EAAQtB,GAAQ,CAYrB,GAXAV,EAAY6D,EACZA,EAAOrB,EAAMpC,OAAO4B,EAAQ,GAExBhC,IAAcyuB,GAChBpmB,IACA0wB,GAAa/4B,IAEbqI,EAAQ,EACRxD,GAAS7E,GAGPqI,GAASxE,IAAS4qB,EAAQ,CAC5B,GAAIpmB,IAAUwwB,EAAc,CAC1BzN,GAAYvmB,EAAQk0B,EACpBD,GAAQ,EACR,MAGFj0B,GAASk0B,EACTA,EAAY,GAGd/2B,IAGF,IAAK82B,EAAO,CACV,GAAID,EAAe,GAAM,EACvB,OAGFh0B,EAAQ,GAKV,GAAI6oB,EACF,OAAO,EAQT,IALAI,EAAe,GACf2G,EAAW,GACX/zB,EAASmE,EAAMnE,OACfsB,GAAS,IAEAA,EAAQtB,GACfV,EAAY6E,EAAMzE,OAAO4B,GAErByrB,EAAWztB,GACby0B,GAAYz0B,GAIVy0B,IACE3G,IACFA,GAAgB2G,GAGlBA,EAAW,IAGb3G,GAAgB9tB,GAGlB,OAAO6qB,EAAIO,EAAJP,CAAc,CACnBlnB,KAAM,aACNnB,MAAOsrB,O,6BC5GX,EAAQ,IAERhuB,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,OAAOrO,EAAMP,QAAQ,IAAK4O,K,6BCL5B,IAAI0lB,EAAS,EAAQ,KAErBz2B,EAAOC,QAAUi5B,EACjBA,EAAUxC,QAAUD,EACpB,IAAI0C,EAAmB,EAEvB,SAASD,EAAUnO,EAAKroB,EAAOkrB,GAM7B,IALA,IAGI1tB,EAHAU,EAAS8B,EAAM9B,OACfsB,GAAS,EACT6C,EAAQ,KAGH7C,EAAQtB,GAAQ,CAGvB,GAAkB,QAFlBV,EAAYwC,EAAMpC,OAAO4B,IAED,CACtB,GAAIA,EAAQi3B,EACV,OAKF,QAAIvL,GAKG7C,EADPhmB,GAAS7E,EACF6qB,CAAW,CAChBlnB,KAAM,UAIV,GAAkB,MAAd3D,EACF,OAGF6E,GAAS7E,K,6BCpCb,EAAQ,IAERF,EAAOC,QAEP,SAAgByC,EAAOqO,GACrB,IAAI7O,EAAQQ,EAAMP,QAAQ,KAAM4O,GAEhC,KAAO7O,EAAQ6O,GACmB,MAA5BrO,EAAMpC,OAAO4B,EAAQ,IAIzBA,IAGF,OAAOA,I,6BCfTlC,EAAOC,QAEP,SAAc8qB,EAAKroB,EAAOkrB,GACxB,IACI9C,EACAhjB,EACA5F,EACAtB,EACA0qB,EACAvoB,EACAkkB,EACAtoB,EACAmP,EACA7I,EAGJ,GAAI2oB,EACF,OAAO,EAGT9C,EAjBWjhB,KAiBIwf,cACfzoB,EAASkqB,EAAQlqB,OACjBkH,EAnBW+B,KAmBOgf,iBAClB3mB,GAAS,EACT4L,EAAMpL,EAAM9B,OAEZ,OAASsB,EAAQtB,GAGF,UAFbjC,EAAOmsB,EAAQ5oB,KAES4F,EAAWnJ,MAInCsoB,EAAYnf,EAAWnJ,GAAM+3B,UAG3B3L,EAAI9J,KAAK6C,KAAK,qBAAuBnlB,EAAO,MAK5B,KAFlBoE,EAAWkkB,EAAUlmB,KApCZ8I,KAoCuBnH,EAAO,KAEhBK,EAAW+K,IAChCA,EAAM/K,IAIVuoB,EAAW5oB,EAAMwE,MAAM,EAAG4G,GAC1B7I,EAAM8lB,EAAI9lB,MA5CC4E,KA6CNmd,OAAOsE,EAAUrmB,GAAK,SAAUqnB,EAASvpB,EAAUlC,GACtDkqB,EAAIlqB,GAAUyrB,EAAdvB,CAAuB,CACrBlnB,KAAM,OACNnB,MAAO4pB,S,gBCrDb,IAAI8M,EAAmB,EAAQ,KAyB/Bp5B,EAAOC,QAvBP,WACE,OAAO,SAAUof,GAkBf,OAjBA+Z,EAAiB/Z,EAAK,QAAQ,SAAUga,EAAUr3B,GAChD,IACItB,EACAmrB,EAFA0D,EAAQ,EAIZ,IAAK7uB,EAAI,EAAGmrB,EAAI7pB,EAAQpB,OAAQF,EAAImrB,EAAGnrB,IACb,SAApBsB,EAAQtB,GAAGmD,OAAiB0rB,GAAS,GAG3C,IAAK7uB,EAAI,EAAGmrB,EAAIwN,EAAS38B,SAASkE,OAAQF,EAAImrB,EAAGnrB,IAAK,CACpD,IAAI44B,EAAQD,EAAS38B,SAASgE,GAC9B44B,EAAMp3B,MAAQxB,EACd44B,EAAMpJ,QAAUmJ,EAASnJ,QAG3BmJ,EAAS9J,MAAQA,KAEZlQ,K,6BClBXrf,EAAOC,QAGP,SAAsB4B,EAAMgC,EAAM/B,GAChC,IAAIsiB,EAAQ,GAEQ,mBAATvgB,IACT/B,EAAU+B,EACVA,EAAO,MAMT,SAASipB,EAAI9tB,GACX,IAAIgG,EAMJ,OAJKnB,GAAQ7E,EAAK6E,OAASA,IACzBmB,EAASlD,EAAQ9C,EAAMolB,EAAMja,WAG3BnL,EAAKtC,WAAuB,IAAXsI,EASvB,SAAatI,EAAUuF,GACrB,IAEIq3B,EAFA14B,EAASlE,EAASkE,OAClBsB,GAAS,EAEbkiB,EAAMnd,KAAKhF,GAEX,OAASC,EAAQtB,GAGf,IAFA04B,EAAQ58B,EAASwF,MAEW,IAAf4qB,EAAIwM,GACf,OAAO,EAKX,OADAlV,EAAMmV,OACC,EAvBErM,CAAIluB,EAAKtC,SAAUsC,GAGrBgG,EAdT8nB,EAAIjrB,K,6BCPN,EAAQ,IAER,EAAQ,KAER,IAAIL,EAAQ,EAAQ,KAEhBqC,EAAO,cACP21B,EAAgB,2FAChBC,EAAc,uBAElBz5B,EAAOC,QAAU,SAAU4B,GACzB,IAAI63B,EACAC,EAmCJ,OAlCAn4B,EAAMK,EAAM,QAAQ,SAAU7C,EAAMkD,EAAOD,GACrC03B,IAAkB13B,IACpBy3B,EAAO,GACPC,EAAgB13B,GAGlB,IAAI23B,EAoDR,SAAwB56B,GACtB,IAAI+yB,EAAQ/yB,EAAK0D,MAAMqvB,MAAMyH,GAC7B,QAAOzH,GAAQA,EAAM,GAtDD8H,CAAe76B,GAEjC,GAAI46B,EAMF,OALA33B,EAAOvF,SAAS8P,OAAOtK,EAAO,EAAG,CAC/B2B,KAAMA,EACNiN,IAAK8oB,EACL72B,SAAU/D,EAAK+D,YAEV,EAGT,IAAI+U,EAgCR,SAAsB9Y,EAAMiD,GAC1B,IAAI8vB,EAAQ/yB,EAAK0D,MAAMqvB,MAAM0H,GAC7B,QAAO1H,GAAQ,CACbjhB,IAAKihB,EAAM,GACX6D,SAAU7D,EAAM,GAChB/yB,KAAMA,GArCQ86B,CAAa96B,GAE3B,IAAK8Y,EACH,OAAO,EAGT,IAAIiiB,EAcR,SAAqBL,EAAMM,GACzB,IAAIt5B,EAAIg5B,EAAK94B,OAEb,KAAOF,KACL,GAAIg5B,EAAKh5B,GAAGoQ,MAAQkpB,EAClB,OAAON,EAAKltB,OAAO9L,EAAG,GAAG,GAI7B,OAAO,EAvBUu5B,CAAYP,EAAM5hB,EAAQhH,KAQzC,OANIipB,EACF93B,EAAOvF,SAAS8P,OAAOtK,EAAO,EAqCpC,SAAiBg4B,EAAUC,EAAQl4B,GACjC,IAAI8O,EAAY9O,EAAOvF,SAASyF,QAAQ+3B,EAASl7B,MAC7Co7B,EAAUn4B,EAAOvF,SAASyF,QAAQg4B,EAAOn7B,MAEzCtC,EADYuF,EAAOvF,SAAS8P,OAAOuE,EAAWqpB,EAAUrpB,EAAY,GAC/C7J,MAAM,GAAI,GACnC,MAAO,CACLrD,KAAMA,EACNnH,SAAUA,EACVoU,IAAKopB,EAASppB,IACd/N,SAAU,CACRE,MAAOi3B,EAASl7B,KAAK+D,SAASE,MAC9BgB,IAAKk2B,EAAOn7B,KAAK+D,SAASkB,IAC1BjB,OAAQ,KAjDyBq3B,CAAQviB,EAASiiB,EAAU93B,IAClD6V,EAAQ8d,SAClB8D,EAAKzyB,KAAK6Q,IAGL,KACN,GAEIjW,I,6BCpDT,EAAQ,IAER,IAAIL,EAAQ,EAAQ,KA8BpB,SAAS84B,EAASt7B,EAAMkD,EAAOD,EAAQvD,GACrC,GAAa,WAATA,EACFuD,EAAOvF,SAAS8P,OAAOtK,EAAO,QACzB,GAAa,WAATxD,EAAmB,CAC5B,IAAImM,EAAO,CAAC3I,EAAO,GAEflD,EAAKtC,WACPmO,EAAOA,EAAKV,OAAOnL,EAAKtC,WAG1BoO,MAAM7J,UAAUuL,OAAO/D,MAAMxG,EAAOvF,SAAUmO,IAtClD5K,EAAQse,OAAS,SAAUsB,EAAOnhB,GAChC,OAAO,SAAUM,GAIf,OAHA6gB,EAAMnM,SAAQ,SAAU7P,GACtB,OAAOrC,EAAMxC,EAAM6E,EAAM02B,GAAU,MAE9Bv7B,GAGT,SAASu7B,EAASv7B,EAAMkD,EAAOD,GACzBA,GACFq4B,EAASt7B,EAAMkD,EAAOD,EAAQvD,KAKpCuB,EAAQwe,WAAa,SAAUD,EAAW9f,GACxC,OAAO,SAAUM,GAEf,OADAwC,EAAMxC,EAAMu7B,GAAU,GACfv7B,GAGT,SAASu7B,EAASv7B,EAAMkD,EAAOD,GACzBA,IAAWuc,EAAUxf,EAAMkD,EAAOD,IACpCq4B,EAASt7B,EAAMkD,EAAOD,EAAQvD,M,6BC3BpC,EAAQ,KAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,IAAI87B,EAAQ,EAAQ,GAEhB7d,EAAQ,EAAQ,KAEhB8d,EAAU,EAAQ,KAElBC,EAAsB,CACxBz3B,MAAO,CACL6B,KAAM,EACND,OAAQ,EACRK,OAAQ,GAEVjB,IAAK,CACHa,KAAM,EACND,OAAQ,EACRK,OAAQ,IAIZ,SAAS+X,EAAWje,EAAM2D,GACxB,IAAIV,EAAStB,UAAUC,OAAS,QAAsB4H,IAAjB7H,UAAU,GAAmBA,UAAU,GAAK,GAC7EuB,EAAQvB,UAAUC,OAAS,QAAsB4H,IAAjB7H,UAAU,GAAmBA,UAAU,GAAK,EAC5Eg6B,EAAWh4B,EAAQib,UAAU5e,EAAK6E,WAIhB2E,IAAlBxJ,EAAK+D,WACP/D,EAAK+D,SAAWd,EAAOjD,MAAQiD,EAAOjD,KAAK+D,UAAY23B,GAGzD,IAAI/1B,EAAM3F,EAAK+D,SAASE,MACpBtD,EAAM,CAACX,EAAK6E,KAAMc,EAAIG,KAAMH,EAAIE,OAAQ3C,GAAOiF,KAAK,KAExD,IAAKszB,EAAQG,mBAAmBD,GAC9B,MAAM,IAAIpxB,MAAM,sBAAsBY,OAAOnL,EAAK6E,KAAM,uCAG1D,IAAIg3B,EAcN,SAAsB77B,EAAMW,EAAKm7B,EAAMH,EAAU14B,EAAQC,GACvD,IAAI2P,EAAQ,CACVlS,IAAKA,GAEHo7B,EAAoC,iBAAbJ,EAEvBG,EAAKtb,WAAaxgB,EAAK+D,WACzB8O,EAAM,kBA4LD,EADgBlN,EA3LqB3F,EAAK+D,UA4LrCE,MAAM6B,KAAM,IAAKH,EAAI1B,MAAM4B,OAAQ,IAAKF,EAAIV,IAAIa,KAAM,IAAKH,EAAIV,IAAIY,QAAQtF,IAAIgB,QAAQ4G,KAAK,KAD1G,IAAyBxC,EAxLnBm2B,EAAKrb,eAAiBsb,IACxBlpB,EAAMmpB,eAAiBh8B,EAAK+D,UAI1B+3B,EAAKG,kBAAoBh5B,EAAOjD,MAAQiD,EAAOjD,KAAKtC,WAAaq+B,IACnElpB,EAAM3P,MAAQD,EAAOjD,KAAKtC,SAASyF,QAAQnD,GAC3C6S,EAAMqpB,iBAAmBj5B,EAAOjD,KAAKtC,SAASkE,QAGhD,IAAIiV,EAA0B,OAApB7W,EAAK41B,iBAA2CpsB,IAApBxJ,EAAK41B,WAA2BkG,EAAK3c,YAAYnf,EAAK41B,aAAe,GAAK,KAEhH,OAAQ51B,EAAK6E,MACX,IAAK,OACHs3B,EAActpB,EAAO,CACnBlV,UAAWm+B,EAAKn+B,YAElB,MAEF,IAAK,OACHkV,EAAMupB,QAAUz7B,EAChBkS,EAAMnV,SAAWsC,EAAK0D,MACtB,MAEF,IAAK,UACHmP,EAAMwpB,MAAQr8B,EAAKuwB,MACnB,MAEF,IAAK,OACH1d,EAAM5O,MAAQjE,EAAKiE,MACnB4O,EAAMqe,QAAUlxB,EAAKkxB,QACrBre,EAAMypB,OAASt8B,EAAKmyB,MACpBtf,EAAM0d,MAAQvwB,EAAKuwB,MACnB,MAEF,IAAK,WACH1d,EAAM+f,QAAU5yB,EAAK4yB,QACrB/f,EAAMypB,OAASt8B,EAAKmyB,MACpBtf,EAAMqe,QAAUlxB,EAAKkxB,QACrBre,EAAM3P,MAAQlD,EAAKkD,MACnB2P,EAAMnV,SAoJZ,SAA6BsC,EAAMiD,GACjC,GAAIjD,EAAKmyB,MACP,OAAOnyB,EAAKtC,SAGd,GAAIuF,EAAOjD,MAAQA,EAAKkD,MAAQ,GAAKD,EAAOjD,KAAKtC,SAASsC,EAAKkD,MAAQ,GAAGivB,MACxE,OAAOnyB,EAAKtC,SAGd,OAGF,SAA0BsC,GACxB,OAAOA,EAAKtC,SAASqhB,QAAO,SAAUpT,EAAO2uB,GAC3C,OAAO3uB,EAAMR,OAAsB,cAAfmvB,EAAMz1B,KAAuBy1B,EAAM58B,UAAY,GAAK,CAAC48B,MACxE,IANIiC,CAAiBv8B,GA7JHw8B,CAAoBx8B,EAAMiD,GAAQ1C,KAAI,SAAUk8B,EAAW/6B,GAC1E,OAAOuc,EAAWwe,EAAWX,EAAM,CACjC97B,KAAMA,EACN6S,MAAOA,GACNnR,MAEL,MAEF,IAAK,aACHy6B,EAActpB,EAAO,CACnB+iB,WAAY51B,EAAK41B,WACjBn4B,MAAOuC,EAAKvC,MACZusB,IAAKhqB,EAAKgqB,MAEZ,MAEF,IAAK,OACHmS,EAActpB,EAAO,CACnB6pB,SAAU18B,EAAKovB,MAAQpvB,EAAKovB,KAAKnhB,MAAM,KAAM,GAAG,KAElD,MAEF,IAAK,aACH4E,EAAMnV,SAAWsC,EAAK0D,MACtBmP,EAAM8pB,QAAS,EACf,MAEF,IAAK,OACHR,EAActpB,EAAO,CACnBpV,MAAOuC,EAAKvC,YAAS+L,EACrB/H,OAAmC,mBAApBq6B,EAAKnb,WAA4Bmb,EAAKnb,WAAW3gB,EAAKgqB,IAAKhqB,EAAKtC,SAAUsC,EAAKvC,OAASq+B,EAAKnb,WAC5G9hB,KAAMi9B,EAAKpb,iBAAmBob,EAAKpb,iBAAiB1gB,EAAKgqB,IAAKhqB,EAAKtC,SAAUsC,EAAKvC,OAASuC,EAAKgqB,MAElG,MAEF,IAAK,QACHmS,EAActpB,EAAO,CACnB5T,IAAKe,EAAKf,UAAOuK,EACjB/L,MAAOuC,EAAKvC,YAAS+L,EACrB1K,IAAKg9B,EAAKlb,kBAAoBkb,EAAKlb,kBAAkB5gB,EAAKgqB,IAAKhqB,EAAKtC,SAAUsC,EAAKvC,MAAOuC,EAAKf,KAAOe,EAAKgqB,MAE7G,MAEF,IAAK,gBACHmS,EAActpB,EAAO8K,EAAM9G,EAAK,CAC9BhY,KAAMi9B,EAAKpb,iBAAmBob,EAAKpb,iBAAiB7J,EAAIhY,MAAQgY,EAAIhY,QAEtE,MAEF,IAAK,iBACHs9B,EAActpB,EAAO,CACnB/T,IAAKg9B,EAAKlb,mBAAqB/J,EAAIhY,KAAOi9B,EAAKlb,kBAAkB/J,EAAIhY,KAAMmB,EAAKtC,SAAUmZ,EAAIpZ,MAAOuC,EAAKf,KAAO4X,EAAIhY,KACrHpB,MAAOoZ,EAAIpZ,YAAS+L,EACpBvK,IAAKe,EAAKf,UAAOuK,IAEnB,MAEF,IAAK,QACL,IAAK,YACL,IAAK,YACHqJ,EAAM+pB,gBAAkB58B,EAAKy2B,MAC7B,MAEF,IAAK,WACH5jB,EAAMgqB,SAAgC,cAArB55B,EAAOjD,KAAK6E,KAC7BgO,EAAM+pB,gBAAkB35B,EAAO4P,MAAM+pB,gBACrC,MAEF,IAAK,YACHT,EAActpB,EAAO,CACnBgqB,SAAU55B,EAAO4P,MAAMgqB,SACvBpG,MAAOxzB,EAAO4P,MAAM+pB,gBAAgB15B,KAEtC,MAEF,IAAK,cACH2P,EAAMf,IAAM9R,EAAK8R,IACjB,MAEF,IAAK,OAEHe,EAAMiqB,QAAU98B,EAAK+D,SAASE,MAAM6B,OAAS9F,EAAK+D,SAASkB,IAAIa,KAC/D+M,EAAM8M,WAAamc,EAAKnc,WACxB9M,EAAM+M,SAAWkc,EAAKlc,SACtB,MAEF,IAAK,aAED,IAAImd,EAEA/8B,EAAKtC,WACPq/B,EAAiB/8B,EAAKtC,SAAS6C,KAAI,SAAU+5B,EAAO54B,GAClD,OAAOuc,EAAWqc,EAAOwB,EAAM,CAC7B97B,KAAMA,EACN6S,MAAOA,GACNnR,OAIPmR,EAAM8M,WAAamc,EAAKnc,WACxB9M,EAAM+M,SAAWkc,EAAKlc,SACtB/M,EAAMmqB,QA2Bd,SAA2Bh9B,EAAM+8B,GAC/B,IAAIznB,EAAKtV,EAAKg9B,QAEd,GAAIlxB,MAAMoR,QAAQ5H,GAAK,CACrB,IAAIf,EAAWinB,EAAMjnB,UAAY,MACjC,OAAOinB,EAAMlnB,cAAcC,EAAU,KAAMe,GAG7C,GAAIA,EAAGzC,MAAMnV,UAAYq/B,EAAgB,CACvC,IAAIr/B,EAAW89B,EAAMyB,SAASC,QAAQ5nB,EAAGzC,MAAMnV,UAAUyN,OAAO4xB,GAChE,OAAOvB,EAAM2B,aAAa7nB,EAAI,KAAM5X,GAGtC,OAAO89B,EAAM2B,aAAa7nB,EAAI,MAxCR8nB,CAAkBp9B,EAAM+8B,GACxC,MAGJ,QACEZ,EAActpB,EAAO8K,EAAM3d,EAAM,CAC/B6E,UAAM2E,EACNzF,cAAUyF,EACV9L,cAAU8L,MAIXuyB,GAAiB/7B,EAAK0D,QACzBmP,EAAMnP,MAAQ1D,EAAK0D,OAGrB,OAAOmP,EArLSwqB,CAAar9B,EAAMW,EAAKgD,EAASg4B,EAAU14B,EAAQC,GACnE,OAAOs4B,EAAMlnB,cAAcqnB,EAAUE,EAAWA,EAAUn+B,UAGjDsC,EAAKtC,UAAYsC,EAAKtC,SAAS6C,KAAI,SAAUk8B,EAAW/6B,GAC7D,OAAOuc,EAAWwe,EAAW94B,EAAS,CACpC3D,KAAMA,EACN6S,MAAOgpB,GACNn6B,YAPoF8H,GAuL7F,SAAS2yB,EAAc16B,EAAQ67B,GAC7B,IAAK,IAAI38B,KAAO28B,OACY,IAAfA,EAAM38B,KACfc,EAAOd,GAAO28B,EAAM38B,IA2C1BK,EAAOC,QAAUgd,G,6BCpRfjd,EAAOC,QAAU,EAAQ,M,6BCO3B,EAAQ,IAER,EAAQ,IAER,EAAQ,IAERe,OAAOuhB,eAAetiB,EAAS,aAAc,CAC3CyC,OAAO,IAET,IAAI65B,EAAI,mBAAsBjgB,QAAUA,OAAY,IAChDkgB,EAAID,EAAIjgB,OAAY,IAAE,iBAAmB,MACzCmgB,EAAIF,EAAIjgB,OAAY,IAAE,gBAAkB,MACxC1S,EAAI2yB,EAAIjgB,OAAY,IAAE,kBAAoB,MAC1C1P,EAAI2vB,EAAIjgB,OAAY,IAAE,qBAAuB,MAC7CogB,EAAIH,EAAIjgB,OAAY,IAAE,kBAAoB,MAC1CqgB,EAAIJ,EAAIjgB,OAAY,IAAE,kBAAoB,MAC1CsgB,EAAIL,EAAIjgB,OAAY,IAAE,iBAAmB,MACzCwP,EAAIyQ,EAAIjgB,OAAY,IAAE,oBAAsB,MAC5CugB,EAAIN,EAAIjgB,OAAY,IAAE,yBAA2B,MACjDuP,EAAI0Q,EAAIjgB,OAAY,IAAE,qBAAuB,MAC7CpP,EAAIqvB,EAAIjgB,OAAY,IAAE,kBAAoB,MAC1CwgB,EAAIP,EAAIjgB,OAAY,IAAE,uBAAyB,MAC/CygB,EAAIR,EAAIjgB,OAAY,IAAE,cAAgB,MACtC0gB,EAAIT,EAAIjgB,OAAY,IAAE,cAAgB,MACtC2gB,EAAIV,EAAIjgB,OAAY,IAAE,qBAAuB,MAC7C4gB,EAAIX,EAAIjgB,OAAY,IAAE,mBAAqB,MAC3C0J,EAAIuW,EAAIjgB,OAAY,IAAE,eAAiB,MAE3C,SAAS6gB,EAAEC,GACT,GAAI,iBAAoBA,GAAK,OAASA,EAAG,CACvC,IAAIC,EAAID,EAAEE,SAEV,OAAQD,GACN,KAAKb,EACH,OAAQY,EAAIA,EAAEv5B,MACZ,KAAKioB,EACL,KAAK+Q,EACL,KAAKjzB,EACL,KAAK8yB,EACL,KAAK9vB,EACL,KAAKM,EACH,OAAOkwB,EAET,QACE,OAAQA,EAAIA,GAAKA,EAAEE,UACjB,KAAKV,EACL,KAAK/Q,EACL,KAAK8Q,EACH,OAAOS,EAET,QACE,OAAOC,GAKjB,KAAKL,EACL,KAAKD,EACL,KAAKN,EACH,OAAOY,IAKf,SAASE,EAAEH,GACT,OAAOD,EAAEC,KAAOP,EAGlB58B,EAAQu9B,OAASL,EACjBl9B,EAAQw9B,UAAY3R,EACpB7rB,EAAQy9B,eAAiBb,EACzB58B,EAAQ09B,gBAAkBf,EAC1B38B,EAAQ29B,gBAAkBjB,EAC1B18B,EAAQ49B,QAAUrB,EAClBv8B,EAAQ69B,WAAajS,EACrB5rB,EAAQsT,SAAW3J,EACnB3J,EAAQ89B,KAAOf,EACf/8B,EAAQ+9B,KAAOjB,EACf98B,EAAQg+B,OAASxB,EACjBx8B,EAAQi+B,SAAWxB,EACnBz8B,EAAQk+B,WAAavxB,EACrB3M,EAAQm+B,SAAWlxB,EAEnBjN,EAAQ26B,mBAAqB,SAAUwC,GACrC,MAAO,iBAAoBA,GAAK,mBAAsBA,GAAKA,IAAMxzB,GAAKwzB,IAAMP,GAAKO,IAAMV,GAAKU,IAAMxwB,GAAKwwB,IAAMlwB,GAAKkwB,IAAMN,GAAK,iBAAoBM,GAAK,OAASA,IAAMA,EAAEE,WAAaN,GAAKI,EAAEE,WAAaP,GAAKK,EAAEE,WAAaX,GAAKS,EAAEE,WAAaV,GAAKQ,EAAEE,WAAazR,GAAKuR,EAAEE,WAAaL,GAAKG,EAAEE,WAAaJ,GAAKE,EAAEE,WAAatX,IAGlU/lB,EAAQo+B,YAAc,SAAUjB,GAC9B,OAAOG,EAAEH,IAAMD,EAAEC,KAAOtR,GAG1B7rB,EAAQq+B,iBAAmBf,EAE3Bt9B,EAAQs+B,kBAAoB,SAAUnB,GACpC,OAAOD,EAAEC,KAAOR,GAGlB38B,EAAQu+B,kBAAoB,SAAUpB,GACpC,OAAOD,EAAEC,KAAOT,GAGlB18B,EAAQw+B,UAAY,SAAUrB,GAC5B,MAAO,iBAAoBA,GAAK,OAASA,GAAKA,EAAEE,WAAad,GAG/Dv8B,EAAQy+B,aAAe,SAAUtB,GAC/B,OAAOD,EAAEC,KAAOvR,GAGlB5rB,EAAQ0+B,WAAa,SAAUvB,GAC7B,OAAOD,EAAEC,KAAOxzB,GAGlB3J,EAAQ2+B,OAAS,SAAUxB,GACzB,OAAOD,EAAEC,KAAOJ,GAGlB/8B,EAAQ4+B,OAAS,SAAUzB,GACzB,OAAOD,EAAEC,KAAOL,GAGlB98B,EAAQ6+B,SAAW,SAAU1B,GAC3B,OAAOD,EAAEC,KAAOX,GAGlBx8B,EAAQ8+B,WAAa,SAAU3B,GAC7B,OAAOD,EAAEC,KAAOV,GAGlBz8B,EAAQ++B,aAAe,SAAU5B,GAC/B,OAAOD,EAAEC,KAAOxwB,GAGlB3M,EAAQg/B,WAAa,SAAU7B,GAC7B,OAAOD,EAAEC,KAAOlwB,I,6BC9IlB,IAAI1L,EAAQ,EAAQ,KAOpB,SAAS+jB,EAAKoD,GACZ,IAAIjsB,EAAWisB,EAAMjsB,SACrBisB,EAAMjsB,SAAW,CAAC,CAChBmH,KAAM,YACN4xB,MAAO9M,EAAM8M,MACb/4B,SAAU,CAACA,EAAS,IACpBqG,SAAUrG,EAAS,GAAGqG,WAGpBrG,EAASkE,OAAS,GACpB+nB,EAAMjsB,SAASuK,KAAK,CAClBpD,KAAM,YACN4xB,MAAO9M,EAAM8M,MACb/4B,SAAUA,EAASwK,MAAM,GACzBnE,SAAU,CACRE,MAAOvG,EAAS,GAAGqG,SAASE,MAC5BgB,IAAKvH,EAASA,EAASkE,OAAS,GAAGmC,SAASkB,OArBpDjE,EAAOC,QAAU,SAAUjB,GAEzB,OADAwC,EAAMxC,EAAM,QAASumB,GACdvmB,I,6BCJT,EAAQ,KAERgB,EAAOC,QAAU,SAASkd,EAAene,GACvC,IAAIkgC,EAAOv+B,UAAUC,OAAS,QAAsB4H,IAAjB7H,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAQ3B,EAAKtC,UAAY,IAAIqhB,QAAO,SAAUI,EAAamb,GAQzD,MAPmB,eAAfA,EAAMz1B,OACRsa,EAAYmb,EAAM1E,YAAc,CAC9B/2B,KAAMy7B,EAAMtQ,IACZvsB,MAAO68B,EAAM78B,QAIV0gB,EAAemc,EAAOnb,KAC5B+gB,K,6BCbL,EAAQ,IAER,EAAQ,KAER,IAAIC,EAAY,CAAC,OAAQ,QAAS,SAAU,OAE5Cn/B,EAAOC,QAAU,SAAwBm/B,GACvC,IAAIpW,GAAOoW,GAAO,IAAI3xB,OAClB2lB,EAAQpK,EAAI1oB,OAAO,GAEvB,GAAc,MAAV8yB,GAA2B,MAAVA,EACnB,OAAOpK,EAGT,IAAIqW,EAAQrW,EAAI7mB,QAAQ,KAExB,IAAe,IAAXk9B,EACF,OAAOrW,EAMT,IAHA,IAAIpoB,EAASu+B,EAAUv+B,OACnBsB,GAAS,IAEJA,EAAQtB,GAAQ,CACvB,IAAIu2B,EAAWgI,EAAUj9B,GAEzB,GAAIm9B,IAAUlI,EAASv2B,QAAUooB,EAAI9hB,MAAM,EAAGiwB,EAASv2B,QAAQ+H,gBAAkBwuB,EAC/E,OAAOnO,EAMX,OAAe,KAFf9mB,EAAQ8mB,EAAI7mB,QAAQ,OAEAk9B,EAAQn9B,EACnB8mB,GAKM,KAFf9mB,EAAQ8mB,EAAI7mB,QAAQ,OAEAk9B,EAAQn9B,EACnB8mB,EAIF,uB,6BC3CT,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,EAAQ,IAER,IAAIrM,EAAQ,EAAQ,KAEhB6d,EAAQ,EAAQ,GAEhB8E,EAAuB74B,UAAU+zB,EAAMtvB,SAAW,MAAMhE,MAAM,EAAG,GAAI,KAAO,GAC5EoM,EAAgBknB,EAAMlnB,cAyC1B,SAASisB,EAAezuB,EAAKe,GAC3B,OAAOyB,EAAcxC,EAAK0uB,EAAa3tB,GAAQA,EAAMnV,UAwFvD,SAAS8iC,EAAa3tB,GACpB,OAAOA,EAAM,kBAAoB,CAC/B,iBAAkBA,EAAM,mBACtB,GApIN7R,EAAOC,QAAU,CACf,MAAS,KACT2oB,UAAW,IACXM,SAAU,KACVD,OAAQ,SACRZ,cAAe,KACfF,WAAY,aACZ,OAAU,MACVnX,KAAM,IACNC,MAAO,MACPwuB,cAAe,IACfC,eAAgB,MAChB/W,MAAO4W,EAAehoB,KAAK,KAAM,SACjCooB,UAAWJ,EAAehoB,KAAK,KAAM,SACrCqoB,UAAWL,EAAehoB,KAAK,KAAM,SACrCsoB,SAAUN,EAAehoB,KAAK,KAAM,MACpCuoB,UA4BF,SAAmBjuB,GACjB,IAAIiE,EAAQjE,EAAM4jB,MAAQ,CACxBsK,UAAWluB,EAAM4jB,YACfjtB,EACAw3B,EAAYR,EAAa3tB,GAC7B,OAAOyB,EAAczB,EAAMgqB,SAAW,KAAO,KAAM/lB,EAAQ6G,EAAM,CAC/D7G,MAAOA,GACNkqB,GAAaA,EAAWnuB,EAAMnV,WAlCjCujC,KAiBF,SAAcpuB,GACZ,IAAIquB,GAAeruB,EAAMlV,UACrBsjC,EAAOC,GAAc1F,EAAMjnB,UAAoB,MACnD,OAAOD,EAAc2sB,EAAMC,EAAc,KAAOruB,EAAOA,EAAMnV,WAnB7D2H,KAYF,SAAsBwN,GACpB,OAAOytB,EAAuBztB,EAAMnV,SAAW4W,EAAc,OAAQ,KAAMzB,EAAMnV,WAZjF4rB,KAuCF,SAAczW,GACZ,IAAIyqB,EAAQkD,EAAa3tB,GAEL,OAAhBA,EAAM5O,OAAkC,IAAhB4O,EAAM5O,YAA+BuF,IAAhBqJ,EAAM5O,QACrDq5B,EAAMr5B,MAAQ4O,EAAM5O,MAAMuZ,YAG5B,OAAOlJ,EAAczB,EAAMqe,QAAU,KAAO,KAAMoM,EAAOzqB,EAAMnV,WA7C/D00B,SAgDF,SAAkBvf,GAChB,IAAIsuB,EAAW,KAEf,GAAsB,OAAlBtuB,EAAM+f,cAAsCppB,IAAlBqJ,EAAM+f,QAAuB,CACzD,IAAIA,EAAU/f,EAAM+f,QACpBuO,EAAW7sB,EAAc,QAAS,CAChCzP,KAAM,WACN+tB,QAASA,EACTwO,UAAU,IAId,OAAO9sB,EAAc,KAAMksB,EAAa3tB,GAAQsuB,EAAUtuB,EAAMnV,WA3DhEgsB,WAwGF,WACE,OAAO,MAxGP2X,QAgCF,SAAiBxuB,GACf,OAAOyB,EAAc,IAAInJ,OAAO0H,EAAMwpB,OAAQmE,EAAa3tB,GAAQA,EAAMnV,WAhCzEo8B,WAoEF,SAAoBjnB,GAClB,OAAOyB,EAAc,OAAQksB,EAAa3tB,GAAQA,EAAMnV,WApExD4E,KA2DF,SAAmBuQ,GACjB,IAAIlV,EAAYkV,EAAM6pB,UAAY,YAAYvxB,OAAO0H,EAAM6pB,UACvDp6B,EAAOgS,EAAc,OAAQ3W,EAAY,CAC3CA,UAAWA,GACT,KAAMkV,EAAMnP,OAChB,OAAO4Q,EAAc,MAAOksB,EAAa3tB,GAAQvQ,IA/DjDknB,KAsEF,SAAc3W,GACZ,GAAIA,EAAM+M,SACR,OAAO,KAGT,IAAI9N,EAAMe,EAAMiqB,QAAU,MAAQ,OAElC,GAAIjqB,EAAM8M,WAAY,CACpB,IAAI2hB,EAAO9F,EAAMjnB,UAAYzC,EAC7B,OAAOwC,EAAcgtB,EAAM,KAAMzuB,EAAMnP,OAGzC,IAAIm4B,EAAY,CACd3gB,wBAAyB,CACvBC,OAAQtI,EAAMnP,QAGlB,OAAO4Q,EAAcxC,EAAK+pB,IAtF1B0F,YA+FF,SAAqB1uB,GACnB,OAAOyB,EAAczB,EAAMf,IAAK0uB,EAAa3tB,GAAQA,EAAMnV,WA/F3D8jC,WAwFF,SAAoB3uB,GAClB,OAAOA,EAAM,kBAAoB2oB,EAAM2B,aAAatqB,EAAMmqB,QAAS,CACjE,iBAAkBnqB,EAAM,oBACrBA,EAAMmqB,W,6BCrIb,EAAQ,IAER,EAAQ,IAGR/7B,EAAQgf,WAA+B,oBAAX3C,OADX,sBACiDA,OADjD,wB,gBCNjBtc,EAAOC,QAAU,IAA0B,sD,gBCA3CD,EAAOC,QAAU,IAA0B","file":"component---src-pages-portfolio-js-2de4814d9a787f84bb26.js","sourcesContent":["import React from 'react';\nimport s from './PageHeader.module.scss';\n\nconst PageHeader = ({ title, children }) => {\n return (\n <div className={s.pageHeader}>\n <h2 className={s.pageHeader__title}>{ title }</h2>\n <div className={s.pageHeader__description}>{ children }</div>\n </div>\n );\n}\n\nexport default PageHeader;","import React from 'react';\nimport s from './Project.module.scss';\nimport Img from 'gatsby-image';\nimport ReactMarkdown from 'react-markdown';\nimport githubLogo from '../../images/github.png';\n\nconst Project = ({ title, children, screenshot, repoLink, siteLink, logos }) => {\n console.log(screenshot);\n return (\n <div className={s.project}>\n <div className={s.project__content}>\n <h3 className={s.project__title}>{ title }</h3>\n <div className={s.project__description}>\n <ReactMarkdown>{ children }</ReactMarkdown>\n </div>\n <div className={s.project__links}>\n <a className={s.project__link} href={ repoLink }>\n <img src={githubLogo} className={s.project__githubLink} alt=\"Github logo\" />\n </a>\n <a className={s.project__link} href={ siteLink }>Перейти на сайт</a>\n </div>\n </div>\n <div className={s.project__presentation}>\n <div className={s.project__screenshot}>\n <Img fluid={ screenshot } alt=\"Gatsby Docs are awesome\" />\n </div>\n <div className={s.project__logos}>\n <Img fixed={ logos } alt=\"Gatsby Docs are awesome\" />\n </div>\n </div>\n </div>\n );\n}\n\nexport default Project;","import React from 'react';\nimport s from './Footer.module.scss';\n\nconst Footer = ({ children }) => {\n return (\n <div className={s.footer}>\n { children }\n </div>\n );\n}\n\nexport default Footer;","import React from 'react';\nimport Layout from '../components/layout/Layout';\nimport PageHeader from '../components/page-header/PageHeader';\nimport Project from '../components/project/Project';\nimport { graphql } from 'gatsby';\nimport Footer from '../components/footer/Footer';\nimport githubLogo from '../images/github-white.png';\nimport footerStyles from '../components/footer/Footer.module.scss';\n\nconst extractImgData = (mode, name, data) => {\n return data.allFile.nodes.find((node) => {\n return node.childImageSharp[mode].originalName === name;\n }).childImageSharp[mode];\n}\n\nconst Portfolio = ({ data }) => {\n return (\n <Layout>\n <PageHeader title='Портфолио' >\n Здесь вы найдете несколько интересных работ и несколько менее интересных. \n Логотипы под скриншотами отображают основные технологии, использованные в \n разработке каждого конкретного проекта и не означают никакого сотрудничества с \n представителями этих товарных знаков (На всякий случай) \n </PageHeader>\n { \n data.allMarkdownRemark.nodes.map((node) => {\n const imgFluid = extractImgData('fluid', node.frontmatter.screenshot, data);\n const logosFixed = extractImgData('fixed', node.frontmatter.logos, data);\n return (\n <Project \n key={ node.frontmatter.id } \n title={ node.frontmatter.title } \n screenshot={ imgFluid } \n logos={ logosFixed }\n siteLink={ node.frontmatter.siteLink }\n repoLink={ node.frontmatter.repoLink }>\n { node.rawMarkdownBody }\n </Project>\n );\n })\n }\n <Footer>\n Остальное на <a href=\"https://github.com/anikeef\"><img src={githubLogo} className={footerStyles.footer__logo} alt=\"Github logo\" /></a>\n </Footer>\n </Layout>\n );\n}\n\nexport default Portfolio;\n\nexport const query = graphql`\n query MyQuery {\n allMarkdownRemark(sort: {fields: frontmatter___id}) {\n nodes {\n frontmatter {\n id\n logos\n repoLink\n screenshot\n siteLink\n title\n }\n rawMarkdownBody\n }\n }\n\n allFile(filter: {sourceInstanceName: {eq: \"images\"}}) {\n nodes {\n childImageSharp {\n fluid(maxWidth: 1000) {\n originalName\n ...GatsbyImageSharpFluid\n }\n fixed(height: 35) {\n originalName\n ...GatsbyImageSharpFixed\n }\n }\n }\n }\n }\n`","'use strict';\n\nmodule.exports = whitespace;\nvar fromCode = String.fromCharCode;\nvar re = /\\s/; // Check if the given character code, or the character code at the first\n// character, is a whitespace character.\n\nfunction whitespace(character) {\n return re.test(typeof character === 'number' ? fromCode(character) : character.charAt(0));\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}","require(\"core-js/modules/es6.regexp.replace\");\n\nexports = module.exports = trim;\n\nfunction trim(str) {\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function (str) {\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function (str) {\n return str.replace(/\\s*$/, '');\n};","'use strict';\n\nmodule.exports = decimal; // Check if the given character code, or the character code at the first\n// character, is decimal.\n\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 48 && code <= 57;\n /* 0-9 */\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\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 legacy = require('character-entities-legacy');\n\nvar invalid = require('character-reference-invalid');\n\nvar decimal = require('is-decimal');\n\nvar hexadecimal = require('is-hexadecimal');\n\nvar alphanumerical = require('is-alphanumerical');\n\nvar decodeEntity = require('./decode-entity');\n\nmodule.exports = parseEntities;\nvar own = {}.hasOwnProperty;\nvar fromCharCode = String.fromCharCode;\nvar noop = Function.prototype; // Default settings.\n\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}; // Characters.\n\nvar tab = 9; // '\\t'\n\nvar lineFeed = 10; // '\\n'\n\nvar formFeed = 12; // '\\f'\n\nvar space = 32; // ' '\n\nvar ampersand = 38; // '&'\n\nvar semicolon = 59; // ';'\n\nvar lessThan = 60; // '<'\n\nvar equalsTo = 61; // '='\n\nvar numberSign = 35; // '#'\n\nvar uppercaseX = 88; // 'X'\n\nvar lowercaseX = 120; // 'x'\n\nvar replacementCharacter = 65533; // '�'\n// Reference types.\n\nvar name = 'named';\nvar hexa = 'hexadecimal';\nvar deci = 'decimal'; // Map of bases.\n\nvar bases = {};\nbases[hexa] = 16;\nbases[deci] = 10; // Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\n\nvar tests = {};\ntests[name] = alphanumerical;\ntests[deci] = decimal;\ntests[hexa] = hexadecimal; // Warning types.\n\nvar namedNotTerminated = 1;\nvar numericNotTerminated = 2;\nvar namedEmpty = 3;\nvar numericEmpty = 4;\nvar namedUnknown = 5;\nvar numericDisallowed = 6;\nvar numericProhibited = 7; // Warning messages.\n\nvar messages = {};\nmessages[namedNotTerminated] = 'Named character references must be terminated by a semicolon';\nmessages[numericNotTerminated] = 'Numeric character references must be terminated by a semicolon';\nmessages[namedEmpty] = 'Named character references cannot be empty';\nmessages[numericEmpty] = 'Numeric character references cannot be empty';\nmessages[namedUnknown] = 'Named character references must be known';\nmessages[numericDisallowed] = 'Numeric character references cannot be disallowed';\nmessages[numericProhibited] = 'Numeric character references cannot be outside the permissible Unicode range'; // Wrap to ensure clean parameters are given to `parse`.\n\nfunction parseEntities(value, options) {\n var settings = {};\n var option;\n var key;\n\n if (!options) {\n options = {};\n }\n\n for (key in defaults) {\n option = options[key];\n settings[key] = option === null || option === undefined ? defaults[key] : option;\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || [];\n settings.position = settings.position.start;\n }\n\n return parse(value, settings);\n} // Parse entities.\n// eslint-disable-next-line complexity\n\n\nfunction parse(value, settings) {\n var additional = settings.additional;\n var nonTerminated = settings.nonTerminated;\n var handleText = settings.text;\n var handleReference = settings.reference;\n var handleWarning = settings.warning;\n var textContext = settings.textContext;\n var referenceContext = settings.referenceContext;\n var warningContext = settings.warningContext;\n var pos = settings.position;\n var indent = settings.indent || [];\n var length = value.length;\n var index = 0;\n var lines = -1;\n var column = pos.column || 1;\n var line = pos.line || 1;\n var queue = '';\n var result = [];\n var entityCharacters;\n var namedEntity;\n var terminated;\n var characters;\n var character;\n var reference;\n var following;\n var warning;\n var reason;\n var output;\n var entity;\n var begin;\n var start;\n var type;\n var test;\n var prev;\n var next;\n var diff;\n var end;\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0);\n } // Cache the current point.\n\n\n prev = now(); // Wrap `handleWarning`.\n\n warning = handleWarning ? parseError : noop; // Ensure the algorithm walks over the first character and the end (inclusive).\n\n index--;\n length++;\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1;\n }\n\n character = value.charCodeAt(index);\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1); // The behaviour depends on the identity of the next character.\n\n if (following === tab || following === lineFeed || following === formFeed || following === space || following === ampersand || following === lessThan || following !== following || additional && following === additional) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character);\n column++;\n continue;\n }\n\n start = index + 1;\n begin = start;\n end = start;\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin; // The behaviour further depends on the next character.\n\n following = value.charCodeAt(end);\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa;\n end = ++begin;\n } else {\n // ASCII digits.\n type = deci;\n }\n } else {\n // Named entity.\n type = name;\n }\n\n entityCharacters = '';\n entity = '';\n characters = '';\n test = tests[type];\n end--;\n\n while (++end < length) {\n following = value.charCodeAt(end);\n\n if (!test(following)) {\n break;\n }\n\n characters += fromCharCode(following); // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters;\n entity = legacy[characters];\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon;\n\n if (terminated) {\n end++;\n namedEntity = type === name ? decodeEntity(characters) : false;\n\n if (namedEntity) {\n entityCharacters = characters;\n entity = namedEntity;\n }\n }\n\n diff = 1 + end - start;\n\n if (!terminated && !nonTerminated) {// Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff);\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1);\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length;\n diff = 1 + end - begin;\n terminated = false;\n } // If the reference is not terminated, warn.\n\n\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty;\n\n if (settings.attribute) {\n following = value.charCodeAt(end);\n\n if (following === equalsTo) {\n warning(reason, diff);\n entity = null;\n } else if (alphanumerical(following)) {\n entity = null;\n } else {\n warning(reason, diff);\n }\n } else {\n warning(reason, diff);\n }\n }\n }\n\n reference = entity;\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff);\n } // When terminated and number, parse as either hexadecimal or decimal.\n\n\n reference = parseInt(characters, bases[type]); // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n\n if (prohibited(reference)) {\n warning(numericProhibited, diff);\n reference = fromCharCode(replacementCharacter);\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff);\n reference = invalid[reference];\n } else {\n // Parse the number.\n output = ''; // Trigger a warning when the parsed number should not be used.\n\n if (disallowed(reference)) {\n warning(numericDisallowed, diff);\n } // Stringify the number.\n\n\n if (reference > 0xffff) {\n reference -= 0x10000;\n output += fromCharCode(reference >>> (10 & 0x3ff) | 0xd800);\n reference = 0xdc00 | reference & 0x3ff;\n }\n\n reference = output + fromCharCode(reference);\n }\n } // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n\n\n if (reference) {\n flush();\n prev = now();\n index = end - 1;\n column += end - start + 1;\n result.push(reference);\n next = now();\n next.offset++;\n\n if (handleReference) {\n handleReference.call(referenceContext, reference, {\n start: prev,\n end: next\n }, value.slice(start - 1, end));\n }\n\n prev = next;\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end);\n queue += characters;\n column += characters.length;\n index = end - 1;\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (character === 10 // Line feed\n ) {\n line++;\n lines++;\n column = 0;\n }\n\n if (character === character) {\n queue += fromCharCode(character);\n column++;\n } else {\n flush();\n }\n }\n } // Return the reduced nodes, and any possible warnings.\n\n\n return result.join(''); // Get current position.\n\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n };\n } // “Throw” a parse-error: a warning.\n\n\n function parseError(code, offset) {\n var position = now();\n position.column += offset;\n position.offset += offset;\n handleWarning.call(warningContext, messages[code], position, code);\n } // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n\n\n function flush() {\n if (queue) {\n result.push(queue);\n\n if (handleText) {\n handleText.call(textContext, queue, {\n start: prev,\n end: now()\n });\n }\n\n queue = '';\n }\n }\n} // Check if `character` is outside the permissible unicode range.\n\n\nfunction prohibited(code) {\n return code >= 0xd800 && code <= 0xdfff || code > 0x10ffff;\n} // Check if `character` is disallowed.\n\n\nfunction disallowed(code) {\n return code >= 0x0001 && code <= 0x0008 || code === 0x000b || code >= 0x000d && code <= 0x001f || code >= 0x007f && code <= 0x009f || code >= 0xfdd0 && code <= 0xfdef || (code & 0xffff) === 0xffff || (code & 0xffff) === 0xfffe;\n}","/*!\n * repeat-string <https://github.com/jonschlinkert/repeat-string>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n'use strict';\n/**\n * Results cache\n */\n\nvar res = '';\nvar cache;\n/**\n * Expose `repeat`\n */\n\nmodule.exports = repeat;\n/**\n * Repeat the given `string` the specified `number`\n * of times.\n *\n * **Example:**\n *\n * ```js\n * var repeat = require('repeat-string');\n * repeat('A', 5);\n * //=> AAAAA\n * ```\n *\n * @param {String} `string` The string to repeat\n * @param {Number} `number` The number of times to repeat the string\n * @return {String} Repeated string\n * @api public\n */\n\nfunction repeat(str, num) {\n if (typeof str !== 'string') {\n throw new TypeError('expected a string');\n } // cover common, quick use cases\n\n\n if (num === 1) return str;\n if (num === 2) return str + str;\n var max = str.length * num;\n\n if (cache !== str || typeof cache === 'undefined') {\n cache = str;\n res = '';\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n\n num >>= 1;\n str += str;\n }\n\n res += str;\n res = res.substr(0, max);\n return res;\n}","'use strict';\n\nmodule.exports = trimTrailingLines;\nvar line = '\\n'; // Remove final newline characters from `value`.\n\nfunction trimTrailingLines(value) {\n var val = String(value);\n var index = val.length;\n\n while (val.charAt(--index) === line) {// Empty\n }\n\n return val.slice(0, index + 1);\n}","'use strict';\n\nmodule.exports = interrupt;\n\nfunction interrupt(interruptors, tokenizers, ctx, params) {\n var bools = ['pedantic', 'commonmark'];\n var count = bools.length;\n var length = interruptors.length;\n var index = -1;\n var interruptor;\n var config;\n var fn;\n var offset;\n var bool;\n var ignore;\n\n while (++index < length) {\n interruptor = interruptors[index];\n config = interruptor[1] || {};\n fn = interruptor[0];\n offset = -1;\n ignore = false;\n\n while (++offset < count) {\n bool = bools[offset];\n\n if (config[bool] !== undefined && config[bool] !== ctx.options[bool]) {\n ignore = true;\n break;\n }\n }\n\n if (ignore) {\n continue;\n }\n\n if (tokenizers[fn].apply(ctx, params)) {\n return true;\n }\n }\n\n return false;\n}","'use strict';\n\nvar collapseWhiteSpace = require('collapse-white-space');\n\nmodule.exports = normalize;\n/* Normalize an identifier. Collapses multiple white space\n * characters into a single space, and removes casing. */\n\nfunction normalize(value) {\n return collapseWhiteSpace(value).toLowerCase();\n}","import React from 'react';\nimport s from './Header.module.scss';\nimport { Link } from 'gatsby';\n\nconst Header = () => {\n return (\n <div className={s.header}>\n <h1 className={s.header__title}><Link to='/' className={s.header__link}>Аникеев</Link></h1>\n <ul className={s.header__nav}>\n <li className={s.header__navItem}><Link to='/portfolio' className={s.header__link}>Портфолио</Link></li>\n </ul>\n </div>\n );\n}\n\nexport default Header;","import React from 'react';\nimport Header from '../header/Header';\nimport '../../styles/typography.css';\nimport '../../styles/global.scss';\n\nconst Layout = ({ children }) => {\n return (\n <>\n <Header />\n { children }\n </>\n );\n}\n\nexport default Layout;","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","require(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\n// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\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// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 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 (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // 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\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\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 (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 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 === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\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 === -1 || end === -1 || // 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 filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = alphabetical; // Check if the given character code, or the character code at the first\n// character, is alphabetical.\n\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97 && code <= 122 ||\n /* a-z */\n code >= 65 && code <= 90\n /* A-Z */\n ;\n}","'use strict';\n\nmodule.exports = {\n position: true,\n gfm: true,\n commonmark: false,\n footnotes: false,\n pedantic: false,\n blocks: require('./block-elements.json')\n};","'use strict';\n\nmodule.exports = indentation;\n/* Map of characters, and their column length,\n * which can be used as indentation. */\n\nvar characters = {\n ' ': 1,\n '\\t': 4\n};\n/* Gets indentation information for a line. */\n\nfunction indentation(value) {\n var index = 0;\n var indent = 0;\n var character = value.charAt(index);\n var stops = {};\n var size;\n\n while (character in characters) {\n size = characters[character];\n indent += size;\n\n if (size > 1) {\n indent = Math.floor(indent / size) * size;\n }\n\n stops[indent] = index;\n character = value.charAt(++index);\n }\n\n return {\n indent: indent,\n stops: stops\n };\n}","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar attributeName = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar unquoted = \"[^\\\"'=<>`\\\\u0000-\\\\u0020]+\";\nvar singleQuoted = '\\'[^\\']*\\'';\nvar doubleQuoted = '\"[^\"]*\"';\nvar attributeValue = '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')';\nvar attribute = '(?:\\\\s+' + attributeName + '(?:\\\\s*=\\\\s*' + attributeValue + ')?)';\nvar openTag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\nvar closeTag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar processing = '<[?].*?[?]>';\nvar declaration = '<![A-Za-z]+\\\\s+[^>]*>';\nvar cdata = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\nexports.openCloseTag = new RegExp('^(?:' + openTag + '|' + closeTag + ')');\nexports.tag = new RegExp('^(?:' + openTag + '|' + closeTag + '|' + comment + '|' + processing + '|' + declaration + '|' + cdata + ')');","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('<', fromIndex);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var link = value.indexOf('[', fromIndex);\n var image = value.indexOf('![', fromIndex);\n\n if (image === -1) {\n return link;\n }\n /* Link can never be `-1` if an image is found, so we don’t need\n * to check for that :) */\n\n\n return link < image ? link : image;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2[\"default\"])({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string}[], fixed: {src: string}[]}} args\n * @return {string}\n */\n\n\nvar getImageSrcKey = function getImageSrcKey(_ref) {\n var fluid = _ref.fluid,\n fixed = _ref.fixed;\n var data = fluid && fluid[0] || fixed && fixed[0];\n return data.src;\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = getImageSrcKey(convertedProps);\n return imageCache[src] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = getImageSrcKey(convertedProps);\n imageCache[src] = true;\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners[\"delete\"](entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref2) {\n var src = _ref2.src,\n srcSet = _ref2.srcSet,\n srcSetWebp = _ref2.srcSetWebp,\n media = _ref2.media,\n sizes = _ref2.sizes;\n return _react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: src\n }, srcSetWebp && _react[\"default\"].createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), _react[\"default\"].createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n media = _ref3.media,\n tracedSVG = _ref3.tracedSVG;\n return _react[\"default\"].createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n base64 = _ref4.base64;\n return _react[\"default\"].createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref5, isWebp) {\n var srcSet = _ref5.srcSet,\n srcSetWebp = _ref5.srcSetWebp,\n media = _ref5.media,\n sizes = _ref5.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"<source \" + typeAttr + mediaAttr + \"srcset=\\\"\" + src + \"\\\" \" + sizesAttr + \"/>\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners[\"delete\"](el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"<picture>\" + sources + \"<img \" + loading + width + height + sizes + srcSet + src + alt + title + crossOrigin + draggable + \"style=\\\"position:absolute;top:0;left:0;opacity:1;width:100%;height:100%;object-fit:cover;object-position:center\\\"/></picture>\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = function Placeholder(_ref6) {\n var src = _ref6.src,\n imageVariants = _ref6.imageVariants,\n generateSources = _ref6.generateSources,\n spreadProps = _ref6.spreadProps;\n\n var baseImage = _react[\"default\"].createElement(Img, (0, _extends2[\"default\"])({\n src: src\n }, spreadProps));\n\n return imageVariants.length > 1 ? _react[\"default\"].createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n};\n\nvar Img = _react[\"default\"].forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n otherProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\"]);\n return _react[\"default\"].createElement(\"img\", (0, _extends2[\"default\"])({\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2[\"default\"])({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes[\"default\"].object,\n onError: _propTypes[\"default\"].func,\n onLoad: _propTypes[\"default\"].func\n};\n\nvar Image =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn\n };\n _this.imageRef = _react[\"default\"].createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n return _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n imgCached: !!_this2.imageRef.current.currentSrc\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2[\"default\"])({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2[\"default\"])({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, {}, imgStyle, {}, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName\n };\n\n if (fluid) {\n var imageVariants = fluid;\n var image = imageVariants[0];\n return _react[\"default\"].createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2[\"default\"])({\n position: \"relative\",\n overflow: \"hidden\"\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, _react[\"default\"].createElement(Tag, {\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && _react[\"default\"].createElement(Tag, {\n title: title,\n style: (0, _extends2[\"default\"])({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && _react[\"default\"].createElement(Placeholder, {\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && _react[\"default\"].createElement(Placeholder, {\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && _react[\"default\"].createElement(\"picture\", null, generateImageSources(imageVariants), _react[\"default\"].createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && _react[\"default\"].createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2[\"default\"])({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var _imageVariants = fixed;\n var _image = _imageVariants[0];\n var divStyle = (0, _extends2[\"default\"])({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: _image.width,\n height: _image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return _react[\"default\"].createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(_image.srcSet)\n }, bgColor && _react[\"default\"].createElement(Tag, {\n title: title,\n style: (0, _extends2[\"default\"])({\n backgroundColor: bgColor,\n width: _image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: _image.height\n }, shouldFadeIn && delayHideStyle)\n }), _image.base64 && _react[\"default\"].createElement(Placeholder, {\n src: _image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateBase64Sources\n }), _image.tracedSVG && _react[\"default\"].createElement(Placeholder, {\n src: _image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && _react[\"default\"].createElement(\"picture\", null, generateImageSources(_imageVariants), _react[\"default\"].createElement(Img, {\n alt: alt,\n title: title,\n width: _image.width,\n height: _image.height,\n sizes: _image.sizes,\n src: _image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: _image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && _react[\"default\"].createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2[\"default\"])({\n alt: alt,\n title: title,\n loading: loading\n }, _image, {\n imageVariants: _imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react[\"default\"].Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes[\"default\"].shape({\n width: _propTypes[\"default\"].number.isRequired,\n height: _propTypes[\"default\"].number.isRequired,\n src: _propTypes[\"default\"].string.isRequired,\n srcSet: _propTypes[\"default\"].string.isRequired,\n base64: _propTypes[\"default\"].string,\n tracedSVG: _propTypes[\"default\"].string,\n srcWebp: _propTypes[\"default\"].string,\n srcSetWebp: _propTypes[\"default\"].string,\n media: _propTypes[\"default\"].string\n});\n\nvar fluidObject = _propTypes[\"default\"].shape({\n aspectRatio: _propTypes[\"default\"].number.isRequired,\n src: _propTypes[\"default\"].string.isRequired,\n srcSet: _propTypes[\"default\"].string.isRequired,\n sizes: _propTypes[\"default\"].string.isRequired,\n base64: _propTypes[\"default\"].string,\n tracedSVG: _propTypes[\"default\"].string,\n srcWebp: _propTypes[\"default\"].string,\n srcSetWebp: _propTypes[\"default\"].string,\n media: _propTypes[\"default\"].string\n});\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: _propTypes[\"default\"].oneOfType([fixedObject, _propTypes[\"default\"].arrayOf(fixedObject)]),\n fluid: _propTypes[\"default\"].oneOfType([fluidObject, _propTypes[\"default\"].arrayOf(fluidObject)]),\n fadeIn: _propTypes[\"default\"].bool,\n durationFadeIn: _propTypes[\"default\"].number,\n title: _propTypes[\"default\"].string,\n alt: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].object]),\n // Support Glamor's css prop.\n critical: _propTypes[\"default\"].bool,\n crossOrigin: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].bool]),\n style: _propTypes[\"default\"].object,\n imgStyle: _propTypes[\"default\"].object,\n placeholderStyle: _propTypes[\"default\"].object,\n placeholderClassName: _propTypes[\"default\"].string,\n backgroundColor: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].bool]),\n onLoad: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onStartLoad: _propTypes[\"default\"].func,\n Tag: _propTypes[\"default\"].string,\n itemProp: _propTypes[\"default\"].string,\n loading: _propTypes[\"default\"].oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes[\"default\"].bool\n};\nvar _default = Image;\nexports[\"default\"] = _default;","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","'use strict';\n\nrequire(\"core-js/modules/es6.array.some\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.string.iterator\");\n\nrequire(\"core-js/modules/es6.array.from\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\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 var src = props.source || props.children || '';\n var parserOptions = props.parserOptions;\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 plugins = [[parse, parserOptions]].concat(props.plugins || []);\n var parser = plugins.reduce(applyParserPlugin, unified());\n var rawAst = parser.parse(src);\n var renderProps = xtend(props, {\n renderers: renderers,\n definitions: getDefinitions(rawAst)\n });\n var astPlugins = determineAstPlugins(props); // eslint-disable-next-line no-sync\n\n var transformedAst = parser.runSync(rawAst);\n var ast = astPlugins.reduce(function (node, plugin) {\n return plugin(node, renderProps);\n }, transformedAst);\n return astToReact(ast, renderProps);\n};\n\nfunction applyParserPlugin(parser, plugin) {\n return Array.isArray(plugin) ? parser.use.apply(parser, _toConsumableArray(plugin)) : parser.use(plugin);\n}\n\nfunction determineAstPlugins(props) {\n var plugins = [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 plugins.push(disallowNode.ofType(disallowedTypes, removalMethod));\n }\n\n if (props.allowNode) {\n plugins.push(disallowNode.ifNotMatch(props.allowNode, removalMethod));\n }\n\n var renderHtml = !props.escapeHtml && !props.skipHtml;\n var hasHtmlParser = (props.astPlugins || []).some(function (item) {\n var plugin = Array.isArray(item) ? item[0] : item;\n return plugin.identity === symbols.HtmlParser;\n });\n\n if (renderHtml && !hasHtmlParser) {\n plugins.push(naiveHtml);\n }\n\n return props.astPlugins ? plugins.concat(props.astPlugins) : plugins;\n}\n\nReactMarkdown.defaultProps = {\n renderers: {},\n escapeHtml: true,\n skipHtml: false,\n sourcePos: false,\n rawSourcePos: false,\n transformLinkUri: uriTransformer,\n astPlugins: [],\n plugins: [],\n parserOptions: {}\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 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 parserOptions: PropTypes.object\n};\nReactMarkdown.types = allTypes;\nReactMarkdown.renderers = defaultRenderers;\nReactMarkdown.uriTransformer = uriTransformer;\nmodule.exports = ReactMarkdown;","'use strict';\n/* Dependencies. */\n\nrequire(\"core-js/modules/es6.promise\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar extend = require('extend');\n\nvar bail = require('bail');\n\nvar vfile = require('vfile');\n\nvar trough = require('trough');\n\nvar string = require('x-is-string');\n\nvar plain = require('is-plain-obj');\n/* Expose a frozen processor. */\n\n\nmodule.exports = unified().freeze();\nvar slice = [].slice;\nvar own = {}.hasOwnProperty;\n/* 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(err, tree, file) {\n if (err) {\n next(err);\n } else {\n ctx.tree = tree;\n ctx.file = file;\n next();\n }\n }\n}\n\nfunction pipelineStringify(p, ctx) {\n ctx.file.contents = p.stringify(ctx.tree, ctx.file);\n}\n/* Function to create the first processor. */\n\n\nfunction unified() {\n var attachers = [];\n var transformers = trough();\n var namespace = {};\n var frozen = false;\n var freezeIndex = -1;\n /* Data management. */\n\n processor.data = data;\n /* Lock. */\n\n processor.freeze = freeze;\n /* Plug-ins. */\n\n processor.attachers = attachers;\n processor.use = use;\n /* 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;\n /* Expose. */\n\n return processor;\n /* Create a new processor based on the processor\n * in the current scope. */\n\n function processor() {\n var destination = unified();\n var length = attachers.length;\n var index = -1;\n\n while (++index < length) {\n destination.use.apply(null, attachers[index]);\n }\n\n destination.data(extend(true, {}, namespace));\n return destination;\n }\n /* Freeze: used to signal a processor that has finished\n * configuration.\n *\n * For example, take unified itself. It’s frozen.\n * Plug-ins should not be added to it. Rather, it should\n * be extended, by invoking it, before modifying it.\n *\n * In essence, always invoke this when exporting a\n * processor. */\n\n\n function freeze() {\n var values;\n var plugin;\n var options;\n var transformer;\n\n if (frozen) {\n return processor;\n }\n\n while (++freezeIndex < attachers.length) {\n values = attachers[freezeIndex];\n plugin = values[0];\n options = values[1];\n transformer = null;\n\n if (options === false) {\n continue;\n }\n\n if (options === true) {\n values[1] = undefined;\n }\n\n transformer = plugin.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 }\n /* Data management.\n * Getter / setter for processor-specific informtion. */\n\n\n function data(key, value) {\n if (string(key)) {\n /* Set `key`. */\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen);\n namespace[key] = value;\n return processor;\n }\n /* Get `key`. */\n\n\n return own.call(namespace, key) && namespace[key] || null;\n }\n /* Set space. */\n\n\n if (key) {\n assertUnfrozen('data', frozen);\n namespace = key;\n return processor;\n }\n /* Get space. */\n\n\n return namespace;\n }\n /* Plug-in management.\n *\n * Pass it:\n * * an attacher and options,\n * * a preset,\n * * a list of presets, attachers, and arguments (list\n * of attachers and options). */\n\n\n function use(value) {\n var settings;\n assertUnfrozen('use', frozen);\n\n if (value === null || value === undefined) {\n /* 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 length;\n var index;\n\n if (plugins === null || plugins === undefined) {\n /* Empty */\n } else if (typeof plugins === 'object' && 'length' in plugins) {\n length = plugins.length;\n index = -1;\n\n while (++index < 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(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 length = attachers.length;\n var index = -1;\n var entry;\n\n while (++index < length) {\n entry = attachers[index];\n\n if (entry[0] === plugin) {\n return entry;\n }\n }\n }\n /* Parse a file (in string or VFile representation)\n * into a Unist node using the `Parser` on the\n * 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)) {\n return new Parser(String(file), file).parse();\n }\n\n return Parser(String(file), file); // eslint-disable-line new-cap\n }\n /* Run transforms on a Unist node representation of a file\n * (in string or 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(err, tree, file) {\n tree = tree || node;\n\n if (err) {\n reject(err);\n } else if (resolve) {\n resolve(tree);\n } else {\n cb(null, tree, file);\n }\n }\n }\n }\n /* Run transforms on a Unist node representation of a file\n * (in string or VFile representation), sync. */\n\n\n function runSync(node, file) {\n var complete = false;\n var result;\n run(node, file, done);\n assertDone('runSync', 'run', complete);\n return result;\n\n function done(err, tree) {\n complete = true;\n bail(err);\n result = tree;\n }\n }\n /* Stringify a Unist node representation of a file\n * (in string or VFile representation) into a string\n * 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)) {\n return new Compiler(node, file).compile();\n }\n\n return Compiler(node, file); // eslint-disable-line new-cap\n }\n /* Parse a file (in string or VFile representation)\n * into a Unist node using the `Parser` on the processor,\n * then run transforms on that node, and compile the\n * resulting node using the `Compiler` on the processor,\n * and 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(err) {\n if (err) {\n reject(err);\n } else if (resolve) {\n resolve(file);\n } else {\n cb(null, file);\n }\n }\n }\n }\n /* Process the given document (in string or VFile\n * representation), sync. */\n\n\n function processSync(doc) {\n var complete = false;\n var file;\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(err) {\n complete = true;\n bail(err);\n }\n }\n}\n/* Check if `func` is a constructor. */\n\n\nfunction newable(value) {\n return typeof value === 'function' && keys(value.prototype);\n}\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}\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}\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}\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`.'].join(''));\n }\n}\n/* Assert `node` is a Unist node. */\n\n\nfunction assertNode(node) {\n if (!node || !string(node.type)) {\n throw new Error('Expected node, got `' + node + '`');\n }\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}","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\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};","'use strict';\n\nmodule.exports = bail;\n\nfunction bail(err) {\n if (err) {\n throw err;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.function.name\");\n\nvar VMessage = require('vfile-message');\n\nvar VFile = require('./core.js');\n\nmodule.exports = VFile;\nvar proto = VFile.prototype;\nproto.message = message;\nproto.info = info;\nproto.fail = fail;\n/* Slight backwards compatibility. Remove in the future. */\n\nproto.warn = message;\n/* 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 filePath = this.path;\n var message = new VMessage(reason, position, origin);\n\n if (filePath) {\n message.name = filePath + ':' + message.name;\n message.file = filePath;\n }\n\n message.fatal = false;\n this.messages.push(message);\n return message;\n}\n/* Fail. Creates a vmessage, associates it with the file,\n * and throws it. */\n\n\nfunction fail() {\n var message = this.message.apply(this, arguments);\n message.fatal = true;\n throw message;\n}\n/* Info. Creates a vmessage, associates it with the file,\n * and marks the fatality as null. */\n\n\nfunction info() {\n var message = this.message.apply(this, arguments);\n message.fatal = null;\n return message;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.function.name\");\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\nvar own = {}.hasOwnProperty;\nmodule.exports = stringify;\n\nfunction stringify(value) {\n /* Nothing. */\n if (!value || typeof value !== 'object') {\n return null;\n }\n /* Node. */\n\n\n if (own.call(value, 'position') || own.call(value, 'type')) {\n return position(value.position);\n }\n /* Position. */\n\n\n if (own.call(value, 'start') || own.call(value, 'end')) {\n return position(value);\n }\n /* Point. */\n\n\n if (own.call(value, 'line') || own.call(value, 'column')) {\n return point(value);\n }\n /* ? */\n\n\n return null;\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}","'use strict';\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar path = require('path');\n\nvar replace = require('replace-ext');\n\nvar buffer = require('is-buffer');\n\nmodule.exports = VFile;\nvar own = {}.hasOwnProperty;\nvar proto = VFile.prototype;\nproto.toString = toString;\n/* Order of setting (least specific to most), we need this because\n * otherwise `{stem: 'a', path: '~/b.js'}` would throw, as a path\n * is needed before a stem can be set. */\n\nvar order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname'];\n/* Construct a new file. */\n\nfunction VFile(options) {\n var prop;\n var index;\n var length;\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 = process.cwd();\n /* Set path related properties in the correct order. */\n\n index = -1;\n length = order.length;\n\n while (++index < length) {\n prop = order[index];\n\n if (own.call(options, prop)) {\n this[prop] = options[prop];\n }\n }\n /* Set non-path related properties. */\n\n\n for (prop in options) {\n if (order.indexOf(prop) === -1) {\n this[prop] = options[prop];\n }\n }\n}\n/* Access full path (`~/index.min.js`). */\n\n\nObject.defineProperty(proto, 'path', {\n get: function get() {\n return this.history[this.history.length - 1];\n },\n set: function set(path) {\n assertNonEmpty(path, 'path');\n\n if (path !== this.path) {\n this.history.push(path);\n }\n }\n});\n/* Access parent path (`~`). */\n\nObject.defineProperty(proto, 'dirname', {\n get: function get() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined;\n },\n set: function set(dirname) {\n assertPath(this.path, 'dirname');\n this.path = path.join(dirname || '', this.basename);\n }\n});\n/* Access basename (`index.min.js`). */\n\nObject.defineProperty(proto, 'basename', {\n get: function get() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined;\n },\n set: function set(basename) {\n assertNonEmpty(basename, 'basename');\n assertPart(basename, 'basename');\n this.path = path.join(this.dirname || '', basename);\n }\n});\n/* Access extname (`.js`). */\n\nObject.defineProperty(proto, 'extname', {\n get: function get() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined;\n },\n set: function set(extname) {\n var ext = extname || '';\n assertPart(ext, 'extname');\n assertPath(this.path, 'extname');\n\n if (ext) {\n if (ext.charAt(0) !== '.') {\n throw new Error('`extname` must start with `.`');\n }\n\n if (ext.indexOf('.', 1) !== -1) {\n throw new Error('`extname` cannot contain multiple dots');\n }\n }\n\n this.path = replace(this.path, ext);\n }\n});\n/* Access stem (`index.min`). */\n\nObject.defineProperty(proto, 'stem', {\n get: function get() {\n return typeof this.path === 'string' ? path.basename(this.path, this.extname) : undefined;\n },\n set: function set(stem) {\n assertNonEmpty(stem, 'stem');\n assertPart(stem, 'stem');\n this.path = path.join(this.dirname || '', stem + (this.extname || ''));\n }\n});\n/* Get the value of the file. */\n\nfunction toString(encoding) {\n var value = this.contents || '';\n return buffer(value) ? value.toString(encoding) : String(value);\n}\n/* Assert that `part` is not a path (i.e., does\n * not contain `path.sep`). */\n\n\nfunction assertPart(part, name) {\n if (part.indexOf(path.sep) !== -1) {\n throw new Error('`' + name + '` cannot be a path: did not expect `' + path.sep + '`');\n }\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}\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 path = require('path');\n\nfunction replaceExt(npath, ext) {\n if (typeof npath !== 'string') {\n return npath;\n }\n\n if (npath.length === 0) {\n return npath;\n }\n\n var nFileName = path.basename(npath, path.extname(npath)) + ext;\n return path.join(path.dirname(npath), nFileName);\n}\n\nmodule.exports = replaceExt;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n};\n\nfunction isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n} // For Node v0.10 support. Remove this eventually.\n\n\nfunction isSlowBuffer(obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0));\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}","require(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar toString = Object.prototype.toString;\nmodule.exports = isString;\n\nfunction isString(obj) {\n return toString.call(obj) === \"[object String]\";\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n var prototype;\n return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};","'use strict';\n\nvar unherit = require('unherit');\n\nvar xtend = require('xtend');\n\nvar Parser = require('./lib/parser.js');\n\nmodule.exports = parse;\nparse.Parser = Parser;\n\nfunction parse(options) {\n var Local = unherit(Parser);\n Local.prototype.options = xtend(Local.prototype.options, this.data('settings'), options);\n this.Parser = Local;\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar inherits = require('inherits');\n\nmodule.exports = unherit; // Create a custom constructor which can be modified without affecting the\n// original class.\n\nfunction unherit(Super) {\n var result;\n var key;\n var value;\n inherits(Of, Super);\n inherits(From, Of); // Clone values.\n\n result = Of.prototype;\n\n for (key in result) {\n value = result[key];\n\n if (value && typeof value === 'object') {\n result[key] = 'concat' in value ? value.concat() : xtend(value);\n }\n }\n\n return Of; // Constructor accepting a single argument, which itself is an `arguments`\n // object.\n\n function From(parameters) {\n return Super.apply(this, parameters);\n } // Constructor accepting variadic arguments.\n\n\n function Of() {\n if (!(this instanceof Of)) {\n return new From(arguments);\n }\n\n return Super.apply(this, arguments);\n }\n}","require(\"core-js/modules/es6.object.create\");\n\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar toggle = require('state-toggle');\n\nvar vfileLocation = require('vfile-location');\n\nvar unescape = require('./unescape');\n\nvar decode = require('./decode');\n\nvar tokenizer = require('./tokenizer');\n\nmodule.exports = Parser;\n\nfunction Parser(doc, file) {\n this.file = file;\n this.offset = {};\n this.options = xtend(this.options);\n this.setOptions({});\n this.inList = false;\n this.inBlock = false;\n this.inLink = false;\n this.atStart = true;\n this.toOffset = vfileLocation(file).toOffset;\n this.unescape = unescape(this, 'escape');\n this.decode = decode(this);\n}\n\nvar proto = Parser.prototype;\n/* Expose core. */\n\nproto.setOptions = require('./set-options');\nproto.parse = require('./parse');\n/* Expose `defaults`. */\n\nproto.options = require('./defaults');\n/* Enter and exit helpers. */\n\nproto.exitStart = toggle('atStart', true);\nproto.enterList = toggle('inList', false);\nproto.enterLink = toggle('inLink', false);\nproto.enterBlock = toggle('inBlock', false);\n/* Nodes that can interupt a paragraph:\n *\n * ```markdown\n * A paragraph, followed by a thematic break.\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the paragraph. */\n\nproto.interruptParagraph = [['thematicBreak'], ['atxHeading'], ['fencedCode'], ['blockquote'], ['html'], ['setextHeading', {\n commonmark: false\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Nodes that can interupt a list:\n *\n * ```markdown\n * - One\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the list. */\n\nproto.interruptList = [['atxHeading', {\n pedantic: false\n}], ['fencedCode', {\n pedantic: false\n}], ['thematicBreak', {\n pedantic: false\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Nodes that can interupt a blockquote:\n *\n * ```markdown\n * > A paragraph.\n * ___\n * ```\n *\n * In the above example, the thematic break “interupts”\n * the blockquote. */\n\nproto.interruptBlockquote = [['indentedCode', {\n commonmark: true\n}], ['fencedCode', {\n commonmark: true\n}], ['atxHeading', {\n commonmark: true\n}], ['setextHeading', {\n commonmark: true\n}], ['thematicBreak', {\n commonmark: true\n}], ['html', {\n commonmark: true\n}], ['list', {\n commonmark: true\n}], ['definition', {\n commonmark: false\n}], ['footnote', {\n commonmark: false\n}]];\n/* Handlers. */\n\nproto.blockTokenizers = {\n newline: require('./tokenize/newline'),\n indentedCode: require('./tokenize/code-indented'),\n fencedCode: require('./tokenize/code-fenced'),\n blockquote: require('./tokenize/blockquote'),\n atxHeading: require('./tokenize/heading-atx'),\n thematicBreak: require('./tokenize/thematic-break'),\n list: require('./tokenize/list'),\n setextHeading: require('./tokenize/heading-setext'),\n html: require('./tokenize/html-block'),\n footnote: require('./tokenize/footnote-definition'),\n definition: require('./tokenize/definition'),\n table: require('./tokenize/table'),\n paragraph: require('./tokenize/paragraph')\n};\nproto.inlineTokenizers = {\n escape: require('./tokenize/escape'),\n autoLink: require('./tokenize/auto-link'),\n url: require('./tokenize/url'),\n html: require('./tokenize/html-inline'),\n link: require('./tokenize/link'),\n reference: require('./tokenize/reference'),\n strong: require('./tokenize/strong'),\n emphasis: require('./tokenize/emphasis'),\n deletion: require('./tokenize/delete'),\n code: require('./tokenize/code-inline'),\n \"break\": require('./tokenize/break'),\n text: require('./tokenize/text')\n};\n/* Expose precedence. */\n\nproto.blockMethods = keys(proto.blockTokenizers);\nproto.inlineMethods = keys(proto.inlineTokenizers);\n/* Tokenizers. */\n\nproto.tokenizeBlock = tokenizer('block');\nproto.tokenizeInline = tokenizer('inline');\nproto.tokenizeFactory = tokenizer;\n/* Get all keys in `value`. */\n\nfunction keys(value) {\n var result = [];\n var key;\n\n for (key in value) {\n result.push(key);\n }\n\n return result;\n}","'use strict';\n\nmodule.exports = factory; // Construct a state `toggler`: a function which inverses `property` in context\n// based on its current value.\n// The by `toggler` returned function restores that value.\n\nfunction factory(key, state, ctx) {\n return enter;\n\n function enter() {\n var context = ctx || this;\n var current = context[key];\n context[key] = !state;\n return exit;\n\n function exit() {\n context[key] = current;\n }\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory;\n\nfunction factory(file) {\n var contents = indices(String(file));\n return {\n toPosition: offsetToPositionFactory(contents),\n toOffset: positionToOffsetFactory(contents)\n };\n} // Factory to get the line and column-based `position` for `offset` in the bound\n// indices.\n\n\nfunction offsetToPositionFactory(indices) {\n return offsetToPosition; // Get the line and column-based `position` for `offset` in the bound indices.\n\n function offsetToPosition(offset) {\n var index = -1;\n var length = indices.length;\n\n if (offset < 0) {\n return {};\n }\n\n while (++index < length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset: offset\n };\n }\n }\n\n return {};\n }\n} // Factory to get the `offset` for a line and column-based `position` in the\n// bound indices.\n\n\nfunction positionToOffsetFactory(indices) {\n return positionToOffset; // Get the `offset` for a line and column-based `position` in the bound\n // indices.\n\n function positionToOffset(position) {\n var line = position && position.line;\n var column = position && position.column;\n\n if (!isNaN(line) && !isNaN(column) && line - 1 in indices) {\n return (indices[line - 2] || 0) + column - 1 || 0;\n }\n\n return -1;\n }\n} // Get indices of line-breaks in `value`.\n\n\nfunction indices(value) {\n var result = [];\n var index = value.indexOf('\\n');\n\n while (index !== -1) {\n result.push(index + 1);\n index = value.indexOf('\\n', index + 1);\n }\n\n result.push(value.length + 1);\n return result;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory;\n/* Factory to de-escape a value, based on a list at `key`\n * in `ctx`. */\n\nfunction factory(ctx, key) {\n return unescape;\n /* De-escape a string using the expression at `key`\n * in `ctx`. */\n\n function unescape(value) {\n var prev = 0;\n var index = value.indexOf('\\\\');\n var escape = ctx[key];\n var queue = [];\n var character;\n\n while (index !== -1) {\n queue.push(value.slice(prev, index));\n prev = index + 1;\n character = value.charAt(prev);\n /* If the following character is not a valid escape,\n * add the slash. */\n\n if (!character || escape.indexOf(character) === -1) {\n queue.push('\\\\');\n }\n\n index = value.indexOf('\\\\', prev);\n }\n\n queue.push(value.slice(prev));\n return queue.join('');\n }\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar entities = require('parse-entities');\n\nmodule.exports = factory;\n/* Factory to create an entity decoder. */\n\nfunction factory(ctx) {\n decoder.raw = decodeRaw;\n return decoder;\n /* Normalize `position` to add an `indent`. */\n\n function normalize(position) {\n var offsets = ctx.offset;\n var line = position.line;\n var result = [];\n\n while (++line) {\n if (!(line in offsets)) {\n break;\n }\n\n result.push((offsets[line] || 0) + 1);\n }\n\n return {\n start: position,\n indent: result\n };\n }\n /* Handle a warning.\n * See https://github.com/wooorm/parse-entities\n * for the warnings. */\n\n\n function handleWarning(reason, position, code) {\n if (code === 3) {\n return;\n }\n\n ctx.file.message(reason, position);\n }\n /* Decode `value` (at `position`) into text-nodes. */\n\n\n function decoder(value, position, handler) {\n entities(value, {\n position: normalize(position),\n warning: handleWarning,\n text: handler,\n reference: handler,\n textContext: ctx,\n referenceContext: ctx\n });\n }\n /* Decode `value` (at `position`) into a string. */\n\n\n function decodeRaw(value, position, options) {\n return entities(value, xtend(options, {\n position: normalize(position),\n warning: handleWarning\n }));\n }\n}","'use strict';\n\nmodule.exports = hexadecimal; // Check if the given character code, or the character code at the first\n// character, is hexadecimal.\n\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character;\n return code >= 97\n /* a */\n && code <= 102 ||\n /* z */\n code >= 65\n /* A */\n && code <= 70\n /* Z */\n || code >= 48\n /* A */\n && code <= 57\n /* Z */\n ;\n}","'use strict';\n\nvar alphabetical = require('is-alphabetical');\n\nvar decimal = require('is-decimal');\n\nmodule.exports = alphanumerical; // Check if the given character code, or the character code at the first\n// character, is alphanumerical.\n\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character);\n}","'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\n var _char;\n\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\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = factory;\nvar MERGEABLE_NODES = {\n text: mergeText,\n blockquote: mergeBlockquote\n};\n/* Check whether a node is mergeable with adjacent nodes. */\n\nfunction mergeable(node) {\n var start;\n var end;\n\n if (node.type !== 'text' || !node.position) {\n return true;\n }\n\n start = node.position.start;\n end = node.position.end;\n /* Only merge nodes which occupy the same size as their\n * `value`. */\n\n return start.line !== end.line || end.column - start.column === node.value.length;\n}\n/* Merge two text nodes: `node` into `prev`. */\n\n\nfunction mergeText(prev, node) {\n prev.value += node.value;\n return prev;\n}\n/* Merge two blockquotes: `node` into `prev`, unless in\n * CommonMark mode. */\n\n\nfunction mergeBlockquote(prev, node) {\n if (this.options.commonmark) {\n return node;\n }\n\n prev.children = prev.children.concat(node.children);\n return prev;\n}\n/* Construct a tokenizer. This creates both\n * `tokenizeInline` and `tokenizeBlock`. */\n\n\nfunction factory(type) {\n return tokenize;\n /* Tokenizer for a bound `type`. */\n\n function tokenize(value, location) {\n var self = this;\n var offset = self.offset;\n var tokens = [];\n var methods = self[type + 'Methods'];\n var tokenizers = self[type + 'Tokenizers'];\n var line = location.line;\n var column = location.column;\n var index;\n var length;\n var method;\n var name;\n var matched;\n var valueLength;\n /* Trim white space only lines. */\n\n if (!value) {\n return tokens;\n }\n /* Expose on `eat`. */\n\n\n eat.now = now;\n eat.file = self.file;\n /* Sync initial offset. */\n\n updatePosition('');\n /* Iterate over `value`, and iterate over all\n * tokenizers. When one eats something, re-iterate\n * with the remaining value. If no tokenizer eats,\n * something failed (should not happen) and an\n * exception is thrown. */\n\n while (value) {\n index = -1;\n length = methods.length;\n matched = false;\n\n while (++index < length) {\n name = methods[index];\n method = tokenizers[name];\n\n if (method && (\n /* istanbul ignore next */\n !method.onlyAtStart || self.atStart) && (!method.notInList || !self.inList) && (!method.notInBlock || !self.inBlock) && (!method.notInLink || !self.inLink)) {\n valueLength = value.length;\n method.apply(self, [eat, value]);\n matched = valueLength !== value.length;\n\n if (matched) {\n break;\n }\n }\n }\n /* istanbul ignore if */\n\n\n if (!matched) {\n self.file.fail(new Error('Infinite loop'), eat.now());\n }\n }\n\n self.eof = now();\n return tokens;\n /* Update line, column, and offset based on\n * `value`. */\n\n function updatePosition(subvalue) {\n var lastIndex = -1;\n var index = subvalue.indexOf('\\n');\n\n while (index !== -1) {\n line++;\n lastIndex = index;\n index = subvalue.indexOf('\\n', index + 1);\n }\n\n if (lastIndex === -1) {\n column += subvalue.length;\n } else {\n column = subvalue.length - lastIndex;\n }\n\n if (line in offset) {\n if (lastIndex !== -1) {\n column += offset[line];\n } else if (column <= offset[line]) {\n column = offset[line] + 1;\n }\n }\n }\n /* Get offset. Called before the first character is\n * eaten to retrieve the range's offsets. */\n\n\n function getOffset() {\n var indentation = [];\n var pos = line + 1;\n /* Done. Called when the last character is\n * eaten to retrieve the range’s offsets. */\n\n return function () {\n var last = line + 1;\n\n while (pos < last) {\n indentation.push((offset[pos] || 0) + 1);\n pos++;\n }\n\n return indentation;\n };\n }\n /* Get the current position. */\n\n\n function now() {\n var pos = {\n line: line,\n column: column\n };\n pos.offset = self.toOffset(pos);\n return pos;\n }\n /* Store position information for a node. */\n\n\n function Position(start) {\n this.start = start;\n this.end = now();\n }\n /* Throw when a value is incorrectly eaten.\n * This shouldn’t happen but will throw on new,\n * incorrect rules. */\n\n\n function validateEat(subvalue) {\n /* istanbul ignore if */\n if (value.substring(0, subvalue.length) !== subvalue) {\n /* Capture stack-trace. */\n self.file.fail(new Error('Incorrectly eaten value: please report this ' + 'warning on http://git.io/vg5Ft'), now());\n }\n }\n /* Mark position and patch `node.position`. */\n\n\n function position() {\n var before = now();\n return update;\n /* Add the position to a node. */\n\n function update(node, indent) {\n var prev = node.position;\n var start = prev ? prev.start : before;\n var combined = [];\n var n = prev && prev.end.line;\n var l = before.line;\n node.position = new Position(start);\n /* If there was already a `position`, this\n * node was merged. Fixing `start` wasn’t\n * hard, but the indent is different.\n * Especially because some information, the\n * indent between `n` and `l` wasn’t\n * tracked. Luckily, that space is\n * (should be?) empty, so we can safely\n * check for it now. */\n\n if (prev && indent && prev.indent) {\n combined = prev.indent;\n\n if (n < l) {\n while (++n < l) {\n combined.push((offset[n] || 0) + 1);\n }\n\n combined.push(before.column);\n }\n\n indent = combined.concat(indent);\n }\n\n node.position.indent = indent || [];\n return node;\n }\n }\n /* Add `node` to `parent`s children or to `tokens`.\n * Performs merges where possible. */\n\n\n function add(node, parent) {\n var children = parent ? parent.children : tokens;\n var prev = children[children.length - 1];\n\n if (prev && node.type === prev.type && node.type in MERGEABLE_NODES && mergeable(prev) && mergeable(node)) {\n node = MERGEABLE_NODES[node.type].call(self, prev, node);\n }\n\n if (node !== prev) {\n children.push(node);\n }\n\n if (self.atStart && tokens.length !== 0) {\n self.exitStart();\n }\n\n return node;\n }\n /* Remove `subvalue` from `value`.\n * `subvalue` must be at the start of `value`. */\n\n\n function eat(subvalue) {\n var indent = getOffset();\n var pos = position();\n var current = now();\n validateEat(subvalue);\n apply.reset = reset;\n reset.test = test;\n apply.test = test;\n value = value.substring(subvalue.length);\n updatePosition(subvalue);\n indent = indent();\n return apply;\n /* Add the given arguments, add `position` to\n * the returned node, and return the node. */\n\n function apply(node, parent) {\n return pos(add(pos(node), parent), indent);\n }\n /* Functions just like apply, but resets the\n * content: the line and column are reversed,\n * and the eaten value is re-added.\n * This is useful for nodes with a single\n * type of content, such as lists and tables.\n * See `apply` above for what parameters are\n * expected. */\n\n\n function reset() {\n var node = apply.apply(null, arguments);\n line = current.line;\n column = current.column;\n value = subvalue + value;\n return node;\n }\n /* Test the position, after eating, and reverse\n * to a not-eaten state. */\n\n\n function test() {\n var result = pos({});\n line = current.line;\n column = current.column;\n value = subvalue + value;\n return result.position;\n }\n }\n }\n}","'use strict';\n\nvar xtend = require('xtend');\n\nvar escapes = require('markdown-escapes');\n\nvar defaults = require('./defaults');\n\nmodule.exports = setOptions;\n\nfunction setOptions(options) {\n var self = this;\n var current = self.options;\n var key;\n var value;\n\n if (options == null) {\n options = {};\n } else if (typeof options === 'object') {\n options = xtend(options);\n } else {\n throw new Error('Invalid value `' + options + '` ' + 'for setting `options`');\n }\n\n for (key in defaults) {\n value = options[key];\n\n if (value == null) {\n value = current[key];\n }\n\n if (key !== 'blocks' && typeof value !== 'boolean' || key === 'blocks' && typeof value !== 'object') {\n throw new Error('Invalid value `' + value + '` for setting `options.' + key + '`');\n }\n\n options[key] = value;\n }\n\n self.options = options;\n self.escape = escapes(options);\n return self;\n}","'use strict';\n\nmodule.exports = escapes;\nvar defaults = ['\\\\', '`', '*', '{', '}', '[', ']', '(', ')', '#', '+', '-', '.', '!', '_', '>'];\nvar gfm = defaults.concat(['~', '|']);\nvar commonmark = gfm.concat(['\\n', '\"', '$', '%', '&', \"'\", ',', '/', ':', ';', '<', '=', '?', '@', '^']);\nescapes[\"default\"] = defaults;\nescapes.gfm = gfm;\nescapes.commonmark = commonmark; // Get markdown escapes.\n\nfunction escapes(options) {\n var settings = options || {};\n\n if (settings.commonmark) {\n return commonmark;\n }\n\n return settings.gfm ? gfm : defaults;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar xtend = require('xtend');\n\nvar removePosition = require('unist-util-remove-position');\n\nmodule.exports = parse;\nvar C_NEWLINE = '\\n';\nvar EXPRESSION_LINE_BREAKS = /\\r\\n|\\r/g;\n/* Parse the bound file. */\n\nfunction parse() {\n var self = this;\n var value = String(self.file);\n var start = {\n line: 1,\n column: 1,\n offset: 0\n };\n var content = xtend(start);\n var node;\n /* Clean non-unix newlines: `\\r\\n` and `\\r` are all\n * changed to `\\n`. This should not affect positional\n * information. */\n\n value = value.replace(EXPRESSION_LINE_BREAKS, C_NEWLINE);\n\n if (value.charCodeAt(0) === 0xFEFF) {\n value = value.slice(1);\n content.column++;\n content.offset++;\n }\n\n node = {\n type: 'root',\n children: self.tokenizeBlock(value, content),\n position: {\n start: start,\n end: self.eof || xtend(start)\n }\n };\n\n if (!self.options.position) {\n removePosition(node, true);\n }\n\n return node;\n}","'use strict';\n\nvar visit = require('unist-util-visit');\n\nmodule.exports = removePosition;\n\nfunction removePosition(node, force) {\n visit(node, force ? hard : soft);\n return node;\n}\n\nfunction hard(node) {\n delete node.position;\n}\n\nfunction soft(node) {\n node.position = undefined;\n}","'use strict';\n\nmodule.exports = visitParents;\n\nvar convert = require('unist-util-is/convert');\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 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 one(tree, null, []); // Visit a single node.\n\n function one(node, index, parents) {\n var result = [];\n var subresult;\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 subresult = toResult(all(node.children, parents.concat(node)));\n return subresult[0] === EXIT ? subresult : result;\n }\n\n return result;\n } // Visit children in `parent`.\n\n\n function all(children, parents) {\n var min = -1;\n var step = reverse ? -1 : 1;\n var index = (reverse ? children.length : min) + step;\n var result;\n\n while (index > min && index < children.length) {\n result = one(children[index], index, parents);\n\n if (result[0] === EXIT) {\n return result;\n }\n\n index = typeof result[1] === 'number' ? result[1] : index + step;\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 = convert;\n\nfunction convert(test) {\n if (typeof test === 'string') {\n return typeFactory(test);\n }\n\n if (test === null || test === undefined) {\n return ok;\n }\n\n if (typeof test === 'object') {\n return ('length' in test ? anyFactory : matchesFactory)(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}\n\nfunction convertAll(tests) {\n var results = [];\n var length = tests.length;\n var index = -1;\n\n while (++index < length) {\n results[index] = convert(tests[index]);\n }\n\n return results;\n} // Utility assert each property in `test` is represented in `node`, and each\n// values are strictly equal.\n\n\nfunction matchesFactory(test) {\n return matches;\n\n function matches(node) {\n var key;\n\n for (key in test) {\n if (node[key] !== test[key]) {\n return false;\n }\n }\n\n return true;\n }\n}\n\nfunction anyFactory(tests) {\n var checks = convertAll(tests);\n var length = checks.length;\n return matches;\n\n function matches() {\n var index = -1;\n\n while (++index < 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 whitespace = require('is-whitespace-character');\n\nmodule.exports = newline;\n/* Tokenise newline. */\n\nfunction newline(eat, value, silent) {\n var character = value.charAt(0);\n var length;\n var subvalue;\n var queue;\n var index;\n\n if (character !== '\\n') {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n index = 1;\n length = value.length;\n subvalue = character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n\n if (character === '\\n') {\n subvalue += queue;\n queue = '';\n }\n\n index++;\n }\n\n eat(subvalue);\n}","'use strict';\n\nvar repeat = require('repeat-string');\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = indentedCode;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar CODE_INDENT_COUNT = 4;\nvar CODE_INDENT = repeat(C_SPACE, CODE_INDENT_COUNT);\n/* Tokenise indented code. */\n\nfunction indentedCode(eat, value, silent) {\n var index = -1;\n var length = value.length;\n var subvalue = '';\n var content = '';\n var subvalueQueue = '';\n var contentQueue = '';\n var character;\n var blankQueue;\n var indent;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (indent) {\n indent = false;\n subvalue += subvalueQueue;\n content += contentQueue;\n subvalueQueue = '';\n contentQueue = '';\n\n if (character === C_NEWLINE) {\n subvalueQueue = character;\n contentQueue = character;\n } else {\n subvalue += character;\n content += character;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n contentQueue = character;\n subvalueQueue = character;\n break;\n }\n\n subvalue += character;\n content += character;\n }\n }\n } else if (character === C_SPACE && value.charAt(index + 1) === character && value.charAt(index + 2) === character && value.charAt(index + 3) === character) {\n subvalueQueue += CODE_INDENT;\n index += 3;\n indent = true;\n } else if (character === C_TAB) {\n subvalueQueue += character;\n indent = true;\n } else {\n blankQueue = '';\n\n while (character === C_TAB || character === C_SPACE) {\n blankQueue += character;\n character = value.charAt(++index);\n }\n\n if (character !== C_NEWLINE) {\n break;\n }\n\n subvalueQueue += blankQueue + character;\n contentQueue += character;\n }\n }\n\n if (content) {\n if (silent) {\n return true;\n }\n\n return eat(subvalue)({\n type: 'code',\n lang: null,\n value: trim(content)\n });\n }\n}","'use strict';\n\nvar trim = require('trim-trailing-lines');\n\nmodule.exports = fencedCode;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_TILDE = '~';\nvar C_TICK = '`';\nvar MIN_FENCE_COUNT = 3;\nvar CODE_INDENT_COUNT = 4;\n\nfunction fencedCode(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var length = value.length + 1;\n var index = 0;\n var subvalue = '';\n var fenceCount;\n var marker;\n var character;\n var flag;\n var queue;\n var content;\n var exdentedContent;\n var closing;\n var exdentedClosing;\n var indent;\n var now;\n\n if (!settings.gfm) {\n return;\n }\n /* Eat initial spacing. */\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n indent = index;\n /* Eat the fence. */\n\n character = value.charAt(index);\n\n if (character !== C_TILDE && character !== C_TICK) {\n return;\n }\n\n index++;\n marker = character;\n fenceCount = 1;\n subvalue += character;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n break;\n }\n\n subvalue += character;\n fenceCount++;\n index++;\n }\n\n if (fenceCount < MIN_FENCE_COUNT) {\n return;\n }\n /* Eat spacing before flag. */\n\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n /* Eat flag. */\n\n\n flag = '';\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE || character === C_TILDE || character === C_TICK) {\n break;\n }\n\n if (character === C_SPACE || character === C_TAB) {\n queue += character;\n } else {\n flag += queue + character;\n queue = '';\n }\n\n index++;\n }\n\n character = value.charAt(index);\n\n if (character && character !== C_NEWLINE) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += flag;\n flag = self.decode.raw(self.unescape(flag), now);\n\n if (queue) {\n subvalue += queue;\n }\n\n queue = '';\n closing = '';\n exdentedClosing = '';\n content = '';\n exdentedContent = '';\n /* Eat content. */\n\n while (index < length) {\n character = value.charAt(index);\n content += closing;\n exdentedContent += exdentedClosing;\n closing = '';\n exdentedClosing = '';\n\n if (character !== C_NEWLINE) {\n content += character;\n exdentedClosing += character;\n index++;\n continue;\n }\n /* Add the newline to `subvalue` if its the first\n * character. Otherwise, add it to the `closing`\n * queue. */\n\n\n if (content) {\n closing += character;\n exdentedClosing += character;\n } else {\n subvalue += character;\n }\n\n queue = '';\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n closing += queue;\n exdentedClosing += queue.slice(indent);\n\n if (queue.length >= CODE_INDENT_COUNT) {\n continue;\n }\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n closing += queue;\n exdentedClosing += queue;\n\n if (queue.length < fenceCount) {\n continue;\n }\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n closing += character;\n exdentedClosing += character;\n index++;\n }\n\n if (!character || character === C_NEWLINE) {\n break;\n }\n }\n\n subvalue += content + closing;\n return eat(subvalue)({\n type: 'code',\n lang: flag || null,\n value: trim(exdentedContent)\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar trim = require('trim');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = blockquote;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_GT = '>';\n/* Tokenise a blockquote. */\n\nfunction blockquote(eat, value, silent) {\n var self = this;\n var offsets = self.offset;\n var tokenizers = self.blockTokenizers;\n var interruptors = self.interruptBlockquote;\n var now = eat.now();\n var currentLine = now.line;\n var length = value.length;\n var values = [];\n var contents = [];\n var indents = [];\n var add;\n var index = 0;\n var character;\n var rest;\n var nextIndex;\n var content;\n var line;\n var startIndex;\n var prefixed;\n var exit;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== C_GT) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n\n while (index < length) {\n nextIndex = value.indexOf(C_NEWLINE, index);\n startIndex = index;\n prefixed = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) === C_GT) {\n index++;\n prefixed = true;\n\n if (value.charAt(index) === C_SPACE) {\n index++;\n }\n } else {\n index = startIndex;\n }\n\n content = value.slice(index, nextIndex);\n\n if (!prefixed && !trim(content)) {\n index = startIndex;\n break;\n }\n\n if (!prefixed) {\n rest = value.slice(index);\n /* Check if the following code contains a possible\n * block. */\n\n if (interrupt(interruptors, tokenizers, self, [eat, rest, true])) {\n break;\n }\n }\n\n line = startIndex === index ? content : value.slice(startIndex, nextIndex);\n indents.push(index - startIndex);\n values.push(line);\n contents.push(content);\n index = nextIndex + 1;\n }\n\n index = -1;\n length = indents.length;\n add = eat(values.join(C_NEWLINE));\n\n while (++index < length) {\n offsets[currentLine] = (offsets[currentLine] || 0) + indents[index];\n currentLine++;\n }\n\n exit = self.enterBlock();\n contents = self.tokenizeBlock(contents.join(C_NEWLINE), now);\n exit();\n return add({\n type: 'blockquote',\n children: contents\n });\n}","'use strict';\n\nmodule.exports = atxHeading;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_HASH = '#';\nvar MAX_ATX_COUNT = 6;\n\nfunction atxHeading(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var length = value.length + 1;\n var index = -1;\n var now = eat.now();\n var subvalue = '';\n var content = '';\n var character;\n var queue;\n var depth;\n /* Eat initial spacing. */\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n index--;\n break;\n }\n\n subvalue += character;\n }\n /* Eat hashes. */\n\n\n depth = 0;\n\n while (++index <= length) {\n character = value.charAt(index);\n\n if (character !== C_HASH) {\n index--;\n break;\n }\n\n subvalue += character;\n depth++;\n }\n\n if (depth > MAX_ATX_COUNT) {\n return;\n }\n\n if (!depth || !settings.pedantic && value.charAt(index + 1) === C_HASH) {\n return;\n }\n\n length = value.length + 1;\n /* Eat intermediate white-space. */\n\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n index--;\n break;\n }\n\n queue += character;\n }\n /* Exit when not in pedantic mode without spacing. */\n\n\n if (!settings.pedantic && queue.length === 0 && character && character !== C_NEWLINE) {\n return;\n }\n\n if (silent) {\n return true;\n }\n /* Eat content. */\n\n\n subvalue += queue;\n queue = '';\n content = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n break;\n }\n\n if (character !== C_SPACE && character !== C_TAB && character !== C_HASH) {\n content += queue + character;\n queue = '';\n continue;\n }\n\n while (character === C_SPACE || character === C_TAB) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === C_HASH) {\n queue += character;\n character = value.charAt(++index);\n }\n\n while (character === C_SPACE || character === C_TAB) {\n queue += character;\n character = value.charAt(++index);\n }\n\n index--;\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += content + queue;\n return eat(subvalue)({\n type: 'heading',\n depth: depth,\n children: self.tokenizeInline(content, now)\n });\n}","'use strict';\n\nmodule.exports = thematicBreak;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\nvar C_DASH = '-';\nvar THEMATIC_BREAK_MARKER_COUNT = 3;\n\nfunction thematicBreak(eat, value, silent) {\n var index = -1;\n var length = value.length + 1;\n var subvalue = '';\n var character;\n var marker;\n var markerCount;\n var queue;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n }\n\n if (character !== C_ASTERISK && character !== C_DASH && character !== C_UNDERSCORE) {\n return;\n }\n\n marker = character;\n subvalue += character;\n markerCount = 1;\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n markerCount++;\n subvalue += queue + marker;\n queue = '';\n } else if (character === C_SPACE) {\n queue += character;\n } else if (markerCount >= THEMATIC_BREAK_MARKER_COUNT && (!character || character === C_NEWLINE)) {\n subvalue += queue;\n\n if (silent) {\n return true;\n }\n\n return eat(subvalue)({\n type: 'thematicBreak'\n });\n } else {\n return;\n }\n }\n}","'use strict';\n/* eslint-disable max-params */\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar decimal = require('is-decimal');\n\nvar getIndent = require('../util/get-indentation');\n\nvar removeIndent = require('../util/remove-indentation');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = list;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\nvar C_PLUS = '+';\nvar C_DASH = '-';\nvar C_DOT = '.';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_PAREN_CLOSE = ')';\nvar C_X_LOWER = 'x';\nvar TAB_SIZE = 4;\nvar EXPRESSION_LOOSE_LIST_ITEM = /\\n\\n(?!\\s*$)/;\nvar EXPRESSION_TASK_ITEM = /^\\[([ \\t]|x|X)][ \\t]/;\nvar EXPRESSION_BULLET = /^([ \\t]*)([*+-]|\\d+[.)])( {1,4}(?! )| |\\t|$|(?=\\n))([^\\n]*)/;\nvar EXPRESSION_PEDANTIC_BULLET = /^([ \\t]*)([*+-]|\\d+[.)])([ \\t]+)/;\nvar EXPRESSION_INITIAL_INDENT = /^( {1,4}|\\t)?/gm;\n/* Map of characters which can be used to mark\n * list-items. */\n\nvar LIST_UNORDERED_MARKERS = {};\nLIST_UNORDERED_MARKERS[C_ASTERISK] = true;\nLIST_UNORDERED_MARKERS[C_PLUS] = true;\nLIST_UNORDERED_MARKERS[C_DASH] = true;\n/* Map of characters which can be used to mark\n * list-items after a digit. */\n\nvar LIST_ORDERED_MARKERS = {};\nLIST_ORDERED_MARKERS[C_DOT] = true;\n/* Map of characters which can be used to mark\n * list-items after a digit. */\n\nvar LIST_ORDERED_COMMONMARK_MARKERS = {};\nLIST_ORDERED_COMMONMARK_MARKERS[C_DOT] = true;\nLIST_ORDERED_COMMONMARK_MARKERS[C_PAREN_CLOSE] = true;\n\nfunction list(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var pedantic = self.options.pedantic;\n var tokenizers = self.blockTokenizers;\n var interuptors = self.interruptList;\n var markers;\n var index = 0;\n var length = value.length;\n var start = null;\n var size = 0;\n var queue;\n var ordered;\n var character;\n var marker;\n var nextIndex;\n var startIndex;\n var prefixed;\n var currentMarker;\n var content;\n var line;\n var prevEmpty;\n var empty;\n var items;\n var allLines;\n var emptyLines;\n var item;\n var enterTop;\n var exitBlockquote;\n var isLoose;\n var node;\n var now;\n var end;\n var indented;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= TAB_SIZE) {\n return;\n }\n\n character = value.charAt(index);\n markers = commonmark ? LIST_ORDERED_COMMONMARK_MARKERS : LIST_ORDERED_MARKERS;\n\n if (LIST_UNORDERED_MARKERS[character] === true) {\n marker = character;\n ordered = false;\n } else {\n ordered = true;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!decimal(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || markers[character] !== true) {\n return;\n }\n\n start = parseInt(queue, 10);\n marker = character;\n }\n\n character = value.charAt(++index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n index = 0;\n items = [];\n allLines = [];\n emptyLines = [];\n\n while (index < length) {\n nextIndex = value.indexOf(C_NEWLINE, index);\n startIndex = index;\n prefixed = false;\n indented = false;\n\n if (nextIndex === -1) {\n nextIndex = length;\n }\n\n end = index + TAB_SIZE;\n size = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n index++;\n }\n\n if (size >= TAB_SIZE) {\n indented = true;\n }\n\n if (item && size >= item.indent) {\n indented = true;\n }\n\n character = value.charAt(index);\n currentMarker = null;\n\n if (!indented) {\n if (LIST_UNORDERED_MARKERS[character] === true) {\n currentMarker = character;\n index++;\n size++;\n } else {\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!decimal(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n index++;\n\n if (queue && markers[character] === true) {\n currentMarker = character;\n size += queue.length + 1;\n }\n }\n\n if (currentMarker) {\n character = value.charAt(index);\n\n if (character === C_TAB) {\n size += TAB_SIZE - size % TAB_SIZE;\n index++;\n } else if (character === C_SPACE) {\n end = index + TAB_SIZE;\n\n while (index < end) {\n if (value.charAt(index) !== C_SPACE) {\n break;\n }\n\n index++;\n size++;\n }\n\n if (index === end && value.charAt(index) === C_SPACE) {\n index -= TAB_SIZE - 1;\n size -= TAB_SIZE - 1;\n }\n } else if (character !== C_NEWLINE && character !== '') {\n currentMarker = null;\n }\n }\n }\n\n if (currentMarker) {\n if (!pedantic && marker !== currentMarker) {\n break;\n }\n\n prefixed = true;\n } else {\n if (!commonmark && !indented && value.charAt(startIndex) === C_SPACE) {\n indented = true;\n } else if (commonmark && item) {\n indented = size >= item.indent || size > TAB_SIZE;\n }\n\n prefixed = false;\n index = startIndex;\n }\n\n line = value.slice(startIndex, nextIndex);\n content = startIndex === index ? line : value.slice(index, nextIndex);\n\n if (currentMarker === C_ASTERISK || currentMarker === C_UNDERSCORE || currentMarker === C_DASH) {\n if (tokenizers.thematicBreak.call(self, eat, line, true)) {\n break;\n }\n }\n\n prevEmpty = empty;\n empty = !trim(content).length;\n\n if (indented && item) {\n item.value = item.value.concat(emptyLines, line);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n } else if (prefixed) {\n if (emptyLines.length !== 0) {\n item.value.push('');\n item.trail = emptyLines.concat();\n }\n\n item = {\n value: [line],\n indent: size,\n trail: []\n };\n items.push(item);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n } else if (empty) {\n if (prevEmpty) {\n break;\n }\n\n emptyLines.push(line);\n } else {\n if (prevEmpty) {\n break;\n }\n\n if (interrupt(interuptors, tokenizers, self, [eat, line, true])) {\n break;\n }\n\n item.value = item.value.concat(emptyLines, line);\n allLines = allLines.concat(emptyLines, line);\n emptyLines = [];\n }\n\n index = nextIndex + 1;\n }\n\n node = eat(allLines.join(C_NEWLINE)).reset({\n type: 'list',\n ordered: ordered,\n start: start,\n loose: null,\n children: []\n });\n enterTop = self.enterList();\n exitBlockquote = self.enterBlock();\n isLoose = false;\n index = -1;\n length = items.length;\n\n while (++index < length) {\n item = items[index].value.join(C_NEWLINE);\n now = eat.now();\n item = eat(item)(listItem(self, item, now), node);\n\n if (item.loose) {\n isLoose = true;\n }\n\n item = items[index].trail.join(C_NEWLINE);\n\n if (index !== length - 1) {\n item += C_NEWLINE;\n }\n\n eat(item);\n }\n\n enterTop();\n exitBlockquote();\n node.loose = isLoose;\n return node;\n}\n\nfunction listItem(ctx, value, position) {\n var offsets = ctx.offset;\n var fn = ctx.options.pedantic ? pedanticListItem : normalListItem;\n var checked = null;\n var task;\n var indent;\n value = fn.apply(null, arguments);\n\n if (ctx.options.gfm) {\n task = value.match(EXPRESSION_TASK_ITEM);\n\n if (task) {\n indent = task[0].length;\n checked = task[1].toLowerCase() === C_X_LOWER;\n offsets[position.line] += indent;\n value = value.slice(indent);\n }\n }\n\n return {\n type: 'listItem',\n loose: EXPRESSION_LOOSE_LIST_ITEM.test(value) || value.charAt(value.length - 1) === C_NEWLINE,\n checked: checked,\n children: ctx.tokenizeBlock(value, position)\n };\n}\n/* Create a list-item using overly simple mechanics. */\n\n\nfunction pedanticListItem(ctx, value, position) {\n var offsets = ctx.offset;\n var line = position.line;\n /* Remove the list-item’s bullet. */\n\n value = value.replace(EXPRESSION_PEDANTIC_BULLET, replacer);\n /* The initial line was also matched by the below, so\n * we reset the `line`. */\n\n line = position.line;\n return value.replace(EXPRESSION_INITIAL_INDENT, replacer);\n /* A simple replacer which removed all matches,\n * and adds their length to `offset`. */\n\n function replacer($0) {\n offsets[line] = (offsets[line] || 0) + $0.length;\n line++;\n return '';\n }\n}\n/* Create a list-item using sane mechanics. */\n\n\nfunction normalListItem(ctx, value, position) {\n var offsets = ctx.offset;\n var line = position.line;\n var max;\n var bullet;\n var rest;\n var lines;\n var trimmedLines;\n var index;\n var length;\n /* Remove the list-item’s bullet. */\n\n value = value.replace(EXPRESSION_BULLET, replacer);\n lines = value.split(C_NEWLINE);\n trimmedLines = removeIndent(value, getIndent(max).indent).split(C_NEWLINE);\n /* We replaced the initial bullet with something\n * else above, which was used to trick\n * `removeIndentation` into removing some more\n * characters when possible. However, that could\n * result in the initial line to be stripped more\n * than it should be. */\n\n trimmedLines[0] = rest;\n offsets[line] = (offsets[line] || 0) + bullet.length;\n line++;\n index = 0;\n length = lines.length;\n\n while (++index < length) {\n offsets[line] = (offsets[line] || 0) + lines[index].length - trimmedLines[index].length;\n line++;\n }\n\n return trimmedLines.join(C_NEWLINE);\n\n function replacer($0, $1, $2, $3, $4) {\n bullet = $1 + $2 + $3;\n rest = $4;\n /* Make sure that the first nine numbered list items\n * can indent with an extra space. That is, when\n * the bullet did not receive an extra final space. */\n\n if (Number($2) < 10 && bullet.length % 2 === 1) {\n $2 = C_SPACE + $2;\n }\n\n max = $1 + repeat(C_SPACE, $2.length) + $3;\n return max + rest;\n }\n}","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar trim = require('trim');\n\nvar repeat = require('repeat-string');\n\nvar getIndent = require('./get-indentation');\n\nmodule.exports = indentation;\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\n/* Remove the minimum indent from every line in `value`.\n * Supports both tab, spaced, and mixed indentation (as\n * well as possible). */\n\nfunction indentation(value, maximum) {\n var values = value.split(C_NEWLINE);\n var position = values.length + 1;\n var minIndent = Infinity;\n var matrix = [];\n var index;\n var indentation;\n var stops;\n var padding;\n values.unshift(repeat(C_SPACE, maximum) + '!');\n\n while (position--) {\n indentation = getIndent(values[position]);\n matrix[position] = indentation.stops;\n\n if (trim(values[position]).length === 0) {\n continue;\n }\n\n if (indentation.indent) {\n if (indentation.indent > 0 && indentation.indent < minIndent) {\n minIndent = indentation.indent;\n }\n } else {\n minIndent = Infinity;\n break;\n }\n }\n\n if (minIndent !== Infinity) {\n position = values.length;\n\n while (position--) {\n stops = matrix[position];\n index = minIndent;\n\n while (index && !(index in stops)) {\n index--;\n }\n\n if (trim(values[position]).length !== 0 && minIndent && index !== minIndent) {\n padding = C_TAB;\n } else {\n padding = '';\n }\n\n values[position] = padding + values[position].slice(index in stops ? stops[index] + 1 : 0);\n }\n }\n\n values.shift();\n return values.join(C_NEWLINE);\n}","'use strict';\n\nmodule.exports = setextHeading;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_EQUALS = '=';\nvar C_DASH = '-';\nvar MAX_HEADING_INDENT = 3;\n/* Map of characters which can be used to mark setext\n * headers, mapping to their corresponding depth. */\n\nvar SETEXT_MARKERS = {};\nSETEXT_MARKERS[C_EQUALS] = 1;\nSETEXT_MARKERS[C_DASH] = 2;\n\nfunction setextHeading(eat, value, silent) {\n var self = this;\n var now = eat.now();\n var length = value.length;\n var index = -1;\n var subvalue = '';\n var content;\n var queue;\n var character;\n var marker;\n var depth;\n /* Eat initial indentation. */\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE || index >= MAX_HEADING_INDENT) {\n index--;\n break;\n }\n\n subvalue += character;\n }\n /* Eat content. */\n\n\n content = '';\n queue = '';\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE) {\n index--;\n break;\n }\n\n if (character === C_SPACE || character === C_TAB) {\n queue += character;\n } else {\n content += queue + character;\n queue = '';\n }\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n subvalue += content + queue;\n /* Ensure the content is followed by a newline and a\n * valid marker. */\n\n character = value.charAt(++index);\n marker = value.charAt(++index);\n\n if (character !== C_NEWLINE || !SETEXT_MARKERS[marker]) {\n return;\n }\n\n subvalue += character;\n /* Eat Setext-line. */\n\n queue = marker;\n depth = SETEXT_MARKERS[marker];\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character !== marker) {\n if (character !== C_NEWLINE) {\n return;\n }\n\n index--;\n break;\n }\n\n queue += character;\n }\n\n if (silent) {\n return true;\n }\n\n return eat(subvalue + queue)({\n type: 'heading',\n depth: depth,\n children: self.tokenizeInline(content, now)\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nvar openCloseTag = require('../util/html').openCloseTag;\n\nmodule.exports = blockHTML;\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_LT = '<';\n\nfunction blockHTML(eat, value, silent) {\n var self = this;\n var blocks = self.options.blocks;\n var length = value.length;\n var index = 0;\n var next;\n var line;\n var offset;\n var character;\n var count;\n var sequence;\n var subvalue;\n var sequences = [[/^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true], [/^<!--/, /-->/, true], [/^<\\?/, /\\?>/, true], [/^<![A-Za-z]/, />/, true], [/^<!\\[CDATA\\[/, /\\]\\]>/, true], [new RegExp('^</?(' + blocks.join('|') + ')(?=(\\\\s|/?>|$))', 'i'), /^$/, true], [new RegExp(openCloseTag.source + '\\\\s*$'), /^$/, false]];\n /* Eat initial spacing. */\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n index++;\n }\n\n if (value.charAt(index) !== C_LT) {\n return;\n }\n\n next = value.indexOf(C_NEWLINE, index + 1);\n next = next === -1 ? length : next;\n line = value.slice(index, next);\n offset = -1;\n count = sequences.length;\n\n while (++offset < count) {\n if (sequences[offset][0].test(line)) {\n sequence = sequences[offset];\n break;\n }\n }\n\n if (!sequence) {\n return;\n }\n\n if (silent) {\n return sequence[2];\n }\n\n index = next;\n\n if (!sequence[1].test(line)) {\n while (index < length) {\n next = value.indexOf(C_NEWLINE, index + 1);\n next = next === -1 ? length : next;\n line = value.slice(index + 1, next);\n\n if (sequence[1].test(line)) {\n if (line) {\n index = next;\n }\n\n break;\n }\n\n index = next;\n }\n }\n\n subvalue = value.slice(0, index);\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = footnoteDefinition;\nfootnoteDefinition.notInList = true;\nfootnoteDefinition.notInBlock = true;\nvar C_BACKSLASH = '\\\\';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_CARET = '^';\nvar C_COLON = ':';\nvar EXPRESSION_INITIAL_TAB = /^( {4}|\\t)?/gm;\n\nfunction footnoteDefinition(eat, value, silent) {\n var self = this;\n var offsets = self.offset;\n var index;\n var length;\n var subvalue;\n var now;\n var currentLine;\n var content;\n var queue;\n var subqueue;\n var character;\n var identifier;\n var add;\n var exit;\n\n if (!self.options.footnotes) {\n return;\n }\n\n index = 0;\n length = value.length;\n subvalue = '';\n now = eat.now();\n currentLine = now.line;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n if (value.charAt(index) !== C_BRACKET_OPEN || value.charAt(index + 1) !== C_CARET) {\n return;\n }\n\n subvalue += C_BRACKET_OPEN + C_CARET;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n break;\n } else if (character === C_BACKSLASH) {\n queue += character;\n index++;\n character = value.charAt(index);\n }\n\n queue += character;\n index++;\n }\n\n if (!queue || value.charAt(index) !== C_BRACKET_CLOSE || value.charAt(index + 1) !== C_COLON) {\n return;\n }\n\n if (silent) {\n return true;\n }\n\n identifier = normalize(queue);\n subvalue += queue + C_BRACKET_CLOSE + C_COLON;\n index = subvalue.length;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n now.column += subvalue.length;\n now.offset += subvalue.length;\n queue = '';\n content = '';\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_NEWLINE) {\n subqueue = character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_NEWLINE) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n\n queue += subqueue;\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n\n if (subqueue.length === 0) {\n break;\n }\n\n queue += subqueue;\n }\n\n if (queue) {\n content += queue;\n queue = '';\n }\n\n content += character;\n index++;\n }\n\n subvalue += content;\n content = content.replace(EXPRESSION_INITIAL_TAB, function (line) {\n offsets[currentLine] = (offsets[currentLine] || 0) + line.length;\n currentLine++;\n return '';\n });\n add = eat(subvalue);\n exit = self.enterBlock();\n content = self.tokenizeBlock(content, now);\n exit();\n return add({\n type: 'footnoteDefinition',\n identifier: identifier,\n children: content\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nmodule.exports = collapse; // `collapse(' \\t\\nbar \\nbaz\\t') // ' bar baz '`\n\nfunction collapse(value) {\n return String(value).replace(/\\s+/g, ' ');\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = definition;\ndefinition.notInList = true;\ndefinition.notInBlock = true;\nvar C_DOUBLE_QUOTE = '\"';\nvar C_SINGLE_QUOTE = '\\'';\nvar C_BACKSLASH = '\\\\';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_COLON = ':';\nvar C_LT = '<';\nvar C_GT = '>';\n\nfunction definition(eat, value, silent) {\n var self = this;\n var commonmark = self.options.commonmark;\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var beforeURL;\n var beforeTitle;\n var queue;\n var character;\n var test;\n var identifier;\n var url;\n var title;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_SPACE && character !== C_TAB) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n break;\n } else if (character === C_BACKSLASH) {\n queue += character;\n index++;\n character = value.charAt(index);\n }\n\n queue += character;\n index++;\n }\n\n if (!queue || value.charAt(index) !== C_BRACKET_CLOSE || value.charAt(index + 1) !== C_COLON) {\n return;\n }\n\n identifier = queue;\n subvalue += queue + C_BRACKET_CLOSE + C_COLON;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE && character !== C_NEWLINE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n queue = '';\n beforeURL = subvalue;\n\n if (character === C_LT) {\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!isEnclosedURLCharacter(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === isEnclosedURLCharacter.delimiter) {\n subvalue += C_LT + queue + character;\n index++;\n } else {\n if (commonmark) {\n return;\n }\n\n index -= queue.length + 1;\n queue = '';\n }\n }\n\n if (!queue) {\n while (index < length) {\n character = value.charAt(index);\n\n if (!isUnclosedURLCharacter(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n subvalue += queue;\n }\n\n if (!queue) {\n return;\n }\n\n url = queue;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE && character !== C_NEWLINE) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n test = null;\n\n if (character === C_DOUBLE_QUOTE) {\n test = C_DOUBLE_QUOTE;\n } else if (character === C_SINGLE_QUOTE) {\n test = C_SINGLE_QUOTE;\n } else if (character === C_PAREN_OPEN) {\n test = C_PAREN_CLOSE;\n }\n\n if (!test) {\n queue = '';\n index = subvalue.length;\n } else if (queue) {\n subvalue += queue + character;\n index = subvalue.length;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === test) {\n break;\n }\n\n if (character === C_NEWLINE) {\n index++;\n character = value.charAt(index);\n\n if (character === C_NEWLINE || character === test) {\n return;\n }\n\n queue += C_NEWLINE;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character !== test) {\n return;\n }\n\n beforeTitle = subvalue;\n subvalue += queue + character;\n index++;\n title = queue;\n queue = '';\n } else {\n return;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character !== C_TAB && character !== C_SPACE) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!character || character === C_NEWLINE) {\n if (silent) {\n return true;\n }\n\n beforeURL = eat(beforeURL).test().end;\n url = self.decode.raw(self.unescape(url), beforeURL, {\n nonTerminated: false\n });\n\n if (title) {\n beforeTitle = eat(beforeTitle).test().end;\n title = self.decode.raw(self.unescape(title), beforeTitle);\n }\n\n return eat(subvalue)({\n type: 'definition',\n identifier: normalize(identifier),\n title: title || null,\n url: url\n });\n }\n}\n/* Check if `character` can be inside an enclosed URI. */\n\n\nfunction isEnclosedURLCharacter(character) {\n return character !== C_GT && character !== C_BRACKET_OPEN && character !== C_BRACKET_CLOSE;\n}\n\nisEnclosedURLCharacter.delimiter = C_GT;\n/* Check if `character` can be inside an unclosed URI. */\n\nfunction isUnclosedURLCharacter(character) {\n return character !== C_BRACKET_OPEN && character !== C_BRACKET_CLOSE && !whitespace(character);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar whitespace = require('is-whitespace-character');\n\nmodule.exports = table;\nvar C_BACKSLASH = '\\\\';\nvar C_TICK = '`';\nvar C_DASH = '-';\nvar C_PIPE = '|';\nvar C_COLON = ':';\nvar C_SPACE = ' ';\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar MIN_TABLE_COLUMNS = 1;\nvar MIN_TABLE_ROWS = 2;\nvar TABLE_ALIGN_LEFT = 'left';\nvar TABLE_ALIGN_CENTER = 'center';\nvar TABLE_ALIGN_RIGHT = 'right';\nvar TABLE_ALIGN_NONE = null;\n\nfunction table(eat, value, silent) {\n var self = this;\n var index;\n var alignments;\n var alignment;\n var subvalue;\n var row;\n var length;\n var lines;\n var queue;\n var character;\n var hasDash;\n var align;\n var cell;\n var preamble;\n var count;\n var opening;\n var now;\n var position;\n var lineCount;\n var line;\n var rows;\n var table;\n var lineIndex;\n var pipeIndex;\n var first;\n /* Exit when not in gfm-mode. */\n\n if (!self.options.gfm) {\n return;\n }\n /* Get the rows.\n * Detecting tables soon is hard, so there are some\n * checks for performance here, such as the minimum\n * number of rows, and allowed characters in the\n * alignment row. */\n\n\n index = 0;\n lineCount = 0;\n length = value.length + 1;\n lines = [];\n\n while (index < length) {\n lineIndex = value.indexOf(C_NEWLINE, index);\n pipeIndex = value.indexOf(C_PIPE, index + 1);\n\n if (lineIndex === -1) {\n lineIndex = value.length;\n }\n\n if (pipeIndex === -1 || pipeIndex > lineIndex) {\n if (lineCount < MIN_TABLE_ROWS) {\n return;\n }\n\n break;\n }\n\n lines.push(value.slice(index, lineIndex));\n lineCount++;\n index = lineIndex + 1;\n }\n /* Parse the alignment row. */\n\n\n subvalue = lines.join(C_NEWLINE);\n alignments = lines.splice(1, 1)[0] || [];\n index = 0;\n length = alignments.length;\n lineCount--;\n alignment = false;\n align = [];\n\n while (index < length) {\n character = alignments.charAt(index);\n\n if (character === C_PIPE) {\n hasDash = null;\n\n if (alignment === false) {\n if (first === false) {\n return;\n }\n } else {\n align.push(alignment);\n alignment = false;\n }\n\n first = false;\n } else if (character === C_DASH) {\n hasDash = true;\n alignment = alignment || TABLE_ALIGN_NONE;\n } else if (character === C_COLON) {\n if (alignment === TABLE_ALIGN_LEFT) {\n alignment = TABLE_ALIGN_CENTER;\n } else if (hasDash && alignment === TABLE_ALIGN_NONE) {\n alignment = TABLE_ALIGN_RIGHT;\n } else {\n alignment = TABLE_ALIGN_LEFT;\n }\n } else if (!whitespace(character)) {\n return;\n }\n\n index++;\n }\n\n if (alignment !== false) {\n align.push(alignment);\n }\n /* Exit when without enough columns. */\n\n\n if (align.length < MIN_TABLE_COLUMNS) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n /* Parse the rows. */\n\n\n position = -1;\n rows = [];\n table = eat(subvalue).reset({\n type: 'table',\n align: align,\n children: rows\n });\n\n while (++position < lineCount) {\n line = lines[position];\n row = {\n type: 'tableRow',\n children: []\n };\n /* Eat a newline character when this is not the\n * first row. */\n\n if (position) {\n eat(C_NEWLINE);\n }\n /* Eat the row. */\n\n\n eat(line).reset(row, table);\n length = line.length + 1;\n index = 0;\n queue = '';\n cell = '';\n preamble = true;\n count = null;\n opening = null;\n\n while (index < length) {\n character = line.charAt(index);\n\n if (character === C_TAB || character === C_SPACE) {\n if (cell) {\n queue += character;\n } else {\n eat(character);\n }\n\n index++;\n continue;\n }\n\n if (character === '' || character === C_PIPE) {\n if (preamble) {\n eat(character);\n } else {\n if (character && opening) {\n queue += character;\n index++;\n continue;\n }\n\n if ((cell || character) && !preamble) {\n subvalue = cell;\n\n if (queue.length > 1) {\n if (character) {\n subvalue += queue.slice(0, queue.length - 1);\n queue = queue.charAt(queue.length - 1);\n } else {\n subvalue += queue;\n queue = '';\n }\n }\n\n now = eat.now();\n eat(subvalue)({\n type: 'tableCell',\n children: self.tokenizeInline(cell, now)\n }, row);\n }\n\n eat(queue + character);\n queue = '';\n cell = '';\n }\n } else {\n if (queue) {\n cell += queue;\n queue = '';\n }\n\n cell += character;\n\n if (character === C_BACKSLASH && index !== length - 2) {\n cell += line.charAt(index + 1);\n index++;\n }\n\n if (character === C_TICK) {\n count = 1;\n\n while (line.charAt(index + 1) === character) {\n cell += character;\n index++;\n count++;\n }\n\n if (!opening) {\n opening = count;\n } else if (count >= opening) {\n opening = 0;\n }\n }\n }\n\n preamble = false;\n index++;\n }\n /* Eat the alignment row. */\n\n\n if (!position) {\n eat(C_NEWLINE + alignments);\n }\n }\n\n return table;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar trim = require('trim');\n\nvar decimal = require('is-decimal');\n\nvar trimTrailingLines = require('trim-trailing-lines');\n\nvar interrupt = require('../util/interrupt');\n\nmodule.exports = paragraph;\nvar C_NEWLINE = '\\n';\nvar C_TAB = '\\t';\nvar C_SPACE = ' ';\nvar TAB_SIZE = 4;\n/* Tokenise paragraph. */\n\nfunction paragraph(eat, value, silent) {\n var self = this;\n var settings = self.options;\n var commonmark = settings.commonmark;\n var gfm = settings.gfm;\n var tokenizers = self.blockTokenizers;\n var interruptors = self.interruptParagraph;\n var index = value.indexOf(C_NEWLINE);\n var length = value.length;\n var position;\n var subvalue;\n var character;\n var size;\n var now;\n\n while (index < length) {\n /* Eat everything if there’s no following newline. */\n if (index === -1) {\n index = length;\n break;\n }\n /* Stop if the next character is NEWLINE. */\n\n\n if (value.charAt(index + 1) === C_NEWLINE) {\n break;\n }\n /* In commonmark-mode, following indented lines\n * are part of the paragraph. */\n\n\n if (commonmark) {\n size = 0;\n position = index + 1;\n\n while (position < length) {\n character = value.charAt(position);\n\n if (character === C_TAB) {\n size = TAB_SIZE;\n break;\n } else if (character === C_SPACE) {\n size++;\n } else {\n break;\n }\n\n position++;\n }\n\n if (size >= TAB_SIZE) {\n index = value.indexOf(C_NEWLINE, index + 1);\n continue;\n }\n }\n\n subvalue = value.slice(index + 1);\n /* Check if the following code contains a possible\n * block. */\n\n if (interrupt(interruptors, tokenizers, self, [eat, subvalue, true])) {\n break;\n }\n /* Break if the following line starts a list, when\n * already in a list, or when in commonmark, or when\n * in gfm mode and the bullet is *not* numeric. */\n\n\n if (tokenizers.list.call(self, eat, subvalue, true) && (self.inList || commonmark || gfm && !decimal(trim.left(subvalue).charAt(0)))) {\n break;\n }\n\n position = index;\n index = value.indexOf(C_NEWLINE, index + 1);\n\n if (index !== -1 && trim(value.slice(position, index)) === '') {\n index = position;\n break;\n }\n }\n\n subvalue = value.slice(0, index);\n\n if (trim(subvalue) === '') {\n eat(subvalue);\n return null;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n subvalue = trimTrailingLines(subvalue);\n return eat(subvalue)({\n type: 'paragraph',\n children: self.tokenizeInline(subvalue, now)\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar locate = require('../locate/escape');\n\nmodule.exports = escape;\nescape.locator = locate;\n\nfunction escape(eat, value, silent) {\n var self = this;\n var character;\n var node;\n\n if (value.charAt(0) === '\\\\') {\n character = value.charAt(1);\n\n if (self.escape.indexOf(character) !== -1) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n if (character === '\\n') {\n node = {\n type: 'break'\n };\n } else {\n node = {\n type: 'text',\n value: character\n };\n }\n\n return eat('\\\\' + character)(node);\n }\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('\\\\', fromIndex);\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar decode = require('parse-entities');\n\nvar locate = require('../locate/tag');\n\nmodule.exports = autoLink;\nautoLink.locator = locate;\nautoLink.notInLink = true;\nvar C_LT = '<';\nvar C_GT = '>';\nvar C_AT_SIGN = '@';\nvar C_SLASH = '/';\nvar MAILTO = 'mailto:';\nvar MAILTO_LENGTH = MAILTO.length;\n/* Tokenise a link. */\n\nfunction autoLink(eat, value, silent) {\n var self;\n var subvalue;\n var length;\n var index;\n var queue;\n var character;\n var hasAtCharacter;\n var link;\n var now;\n var content;\n var tokenizers;\n var exit;\n\n if (value.charAt(0) !== C_LT) {\n return;\n }\n\n self = this;\n subvalue = '';\n length = value.length;\n index = 0;\n queue = '';\n hasAtCharacter = false;\n link = '';\n index++;\n subvalue = C_LT;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_GT || character === C_AT_SIGN || character === ':' && value.charAt(index + 1) === C_SLASH) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n link += queue;\n queue = '';\n character = value.charAt(index);\n link += character;\n index++;\n\n if (character === C_AT_SIGN) {\n hasAtCharacter = true;\n } else {\n if (character !== ':' || value.charAt(index + 1) !== C_SLASH) {\n return;\n }\n\n link += C_SLASH;\n index++;\n }\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_GT) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (!queue || character !== C_GT) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n link += queue;\n content = link;\n subvalue += link + character;\n now = eat.now();\n now.column++;\n now.offset++;\n\n if (hasAtCharacter) {\n if (link.slice(0, MAILTO_LENGTH).toLowerCase() === MAILTO) {\n content = content.substr(MAILTO_LENGTH);\n now.column += MAILTO_LENGTH;\n now.offset += MAILTO_LENGTH;\n } else {\n link = MAILTO + link;\n }\n }\n /* Temporarily remove all tokenizers except text in autolinks. */\n\n\n tokenizers = self.inlineTokenizers;\n self.inlineTokenizers = {\n text: tokenizers.text\n };\n exit = self.enterLink();\n content = self.tokenizeInline(content, now);\n self.inlineTokenizers = tokenizers;\n exit();\n return eat(subvalue)({\n type: 'link',\n title: null,\n url: decode(link, {\n nonTerminated: false\n }),\n children: content\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar decode = require('parse-entities');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/url');\n\nmodule.exports = url;\nurl.locator = locate;\nurl.notInLink = true;\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_LT = '<';\nvar C_AT_SIGN = '@';\nvar HTTP_PROTOCOL = 'http://';\nvar HTTPS_PROTOCOL = 'https://';\nvar MAILTO_PROTOCOL = 'mailto:';\nvar PROTOCOLS = [HTTP_PROTOCOL, HTTPS_PROTOCOL, MAILTO_PROTOCOL];\nvar PROTOCOLS_LENGTH = PROTOCOLS.length;\n\nfunction url(eat, value, silent) {\n var self = this;\n var subvalue;\n var content;\n var character;\n var index;\n var position;\n var protocol;\n var match;\n var length;\n var queue;\n var parenCount;\n var nextCharacter;\n var exit;\n\n if (!self.options.gfm) {\n return;\n }\n\n subvalue = '';\n index = -1;\n length = PROTOCOLS_LENGTH;\n\n while (++index < length) {\n protocol = PROTOCOLS[index];\n match = value.slice(0, protocol.length);\n\n if (match.toLowerCase() === protocol) {\n subvalue = match;\n break;\n }\n }\n\n if (!subvalue) {\n return;\n }\n\n index = subvalue.length;\n length = value.length;\n queue = '';\n parenCount = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (whitespace(character) || character === C_LT) {\n break;\n }\n\n if (character === '.' || character === ',' || character === ':' || character === ';' || character === '\"' || character === '\\'' || character === ')' || character === ']') {\n nextCharacter = value.charAt(index + 1);\n\n if (!nextCharacter || whitespace(nextCharacter)) {\n break;\n }\n }\n\n if (character === C_PAREN_OPEN || character === C_BRACKET_OPEN) {\n parenCount++;\n }\n\n if (character === C_PAREN_CLOSE || character === C_BRACKET_CLOSE) {\n parenCount--;\n\n if (parenCount < 0) {\n break;\n }\n }\n\n queue += character;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n subvalue += queue;\n content = subvalue;\n\n if (protocol === MAILTO_PROTOCOL) {\n position = queue.indexOf(C_AT_SIGN);\n\n if (position === -1 || position === length - 1) {\n return;\n }\n\n content = content.substr(MAILTO_PROTOCOL.length);\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n exit = self.enterLink();\n content = self.tokenizeInline(content, eat.now());\n exit();\n return eat(subvalue)({\n type: 'link',\n title: null,\n url: decode(subvalue, {\n nonTerminated: false\n }),\n children: content\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\nvar PROTOCOLS = ['https://', 'http://', 'mailto:'];\n\nfunction locate(value, fromIndex) {\n var length = PROTOCOLS.length;\n var index = -1;\n var min = -1;\n var position;\n\n if (!this.options.gfm) {\n return -1;\n }\n\n while (++index < length) {\n position = value.indexOf(PROTOCOLS[index], fromIndex);\n\n if (position !== -1 && (position < min || min === -1)) {\n min = position;\n }\n }\n\n return min;\n}","'use strict';\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nvar alphabetical = require('is-alphabetical');\n\nvar locate = require('../locate/tag');\n\nvar tag = require('../util/html').tag;\n\nmodule.exports = inlineHTML;\ninlineHTML.locator = locate;\nvar EXPRESSION_HTML_LINK_OPEN = /^<a /i;\nvar EXPRESSION_HTML_LINK_CLOSE = /^<\\/a>/i;\n\nfunction inlineHTML(eat, value, silent) {\n var self = this;\n var length = value.length;\n var character;\n var subvalue;\n\n if (value.charAt(0) !== '<' || length < 3) {\n return;\n }\n\n character = value.charAt(1);\n\n if (!alphabetical(character) && character !== '?' && character !== '!' && character !== '/') {\n return;\n }\n\n subvalue = value.match(tag);\n\n if (!subvalue) {\n return;\n }\n /* istanbul ignore if - not used yet. */\n\n\n if (silent) {\n return true;\n }\n\n subvalue = subvalue[0];\n\n if (!self.inLink && EXPRESSION_HTML_LINK_OPEN.test(subvalue)) {\n self.inLink = true;\n } else if (self.inLink && EXPRESSION_HTML_LINK_CLOSE.test(subvalue)) {\n self.inLink = false;\n }\n\n return eat(subvalue)({\n type: 'html',\n value: subvalue\n });\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nmodule.exports = link;\nlink.locator = locate;\nvar own = {}.hasOwnProperty;\nvar C_BACKSLASH = '\\\\';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\nvar C_PAREN_OPEN = '(';\nvar C_PAREN_CLOSE = ')';\nvar C_LT = '<';\nvar C_GT = '>';\nvar C_TICK = '`';\nvar C_DOUBLE_QUOTE = '\"';\nvar C_SINGLE_QUOTE = '\\'';\n/* Map of characters, which can be used to mark link\n * and image titles. */\n\nvar LINK_MARKERS = {};\nLINK_MARKERS[C_DOUBLE_QUOTE] = C_DOUBLE_QUOTE;\nLINK_MARKERS[C_SINGLE_QUOTE] = C_SINGLE_QUOTE;\n/* Map of characters, which can be used to mark link\n * and image titles in commonmark-mode. */\n\nvar COMMONMARK_LINK_MARKERS = {};\nCOMMONMARK_LINK_MARKERS[C_DOUBLE_QUOTE] = C_DOUBLE_QUOTE;\nCOMMONMARK_LINK_MARKERS[C_SINGLE_QUOTE] = C_SINGLE_QUOTE;\nCOMMONMARK_LINK_MARKERS[C_PAREN_OPEN] = C_PAREN_CLOSE;\n\nfunction link(eat, value, silent) {\n var self = this;\n var subvalue = '';\n var index = 0;\n var character = value.charAt(0);\n var pedantic = self.options.pedantic;\n var commonmark = self.options.commonmark;\n var gfm = self.options.gfm;\n var closed;\n var count;\n var opening;\n var beforeURL;\n var beforeTitle;\n var subqueue;\n var hasMarker;\n var markers;\n var isImage;\n var content;\n var marker;\n var length;\n var title;\n var depth;\n var queue;\n var url;\n var now;\n var exit;\n var node;\n /* Detect whether this is an image. */\n\n if (character === '!') {\n isImage = true;\n subvalue = character;\n character = value.charAt(++index);\n }\n /* Eat the opening. */\n\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n /* Exit when this is a link and we’re already inside\n * a link. */\n\n\n if (!isImage && self.inLink) {\n return;\n }\n\n subvalue += character;\n queue = '';\n index++;\n /* Eat the content. */\n\n length = value.length;\n now = eat.now();\n depth = 0;\n now.column += index;\n now.offset += index;\n\n while (index < length) {\n character = value.charAt(index);\n subqueue = character;\n\n if (character === C_TICK) {\n /* Inline-code in link content. */\n count = 1;\n\n while (value.charAt(index + 1) === C_TICK) {\n subqueue += character;\n index++;\n count++;\n }\n\n if (!opening) {\n opening = count;\n } else if (count >= opening) {\n opening = 0;\n }\n } else if (character === C_BACKSLASH) {\n /* Allow brackets to be escaped. */\n index++;\n subqueue += value.charAt(index);\n /* In GFM mode, brackets in code still count.\n * In all other modes, they don’t. This empty\n * block prevents the next statements are\n * entered. */\n } else if ((!opening || gfm) && character === C_BRACKET_OPEN) {\n depth++;\n } else if ((!opening || gfm) && character === C_BRACKET_CLOSE) {\n if (depth) {\n depth--;\n } else {\n /* Allow white-space between content and\n * url in GFM mode. */\n if (!pedantic) {\n while (index < length) {\n character = value.charAt(index + 1);\n\n if (!whitespace(character)) {\n break;\n }\n\n subqueue += character;\n index++;\n }\n }\n\n if (value.charAt(index + 1) !== C_PAREN_OPEN) {\n return;\n }\n\n subqueue += C_PAREN_OPEN;\n closed = true;\n index++;\n break;\n }\n }\n\n queue += subqueue;\n subqueue = '';\n index++;\n }\n /* Eat the content closing. */\n\n\n if (!closed) {\n return;\n }\n\n content = queue;\n subvalue += queue + subqueue;\n index++;\n /* Eat white-space. */\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n /* Eat the URL. */\n\n\n character = value.charAt(index);\n markers = commonmark ? COMMONMARK_LINK_MARKERS : LINK_MARKERS;\n queue = '';\n beforeURL = subvalue;\n\n if (character === C_LT) {\n index++;\n beforeURL += C_LT;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_GT) {\n break;\n }\n\n if (commonmark && character === '\\n') {\n return;\n }\n\n queue += character;\n index++;\n }\n\n if (value.charAt(index) !== C_GT) {\n return;\n }\n\n subvalue += C_LT + queue + C_GT;\n url = queue;\n index++;\n } else {\n character = null;\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (subqueue && own.call(markers, character)) {\n break;\n }\n\n if (whitespace(character)) {\n if (!pedantic) {\n break;\n }\n\n subqueue += character;\n } else {\n if (character === C_PAREN_OPEN) {\n depth++;\n } else if (character === C_PAREN_CLOSE) {\n if (depth === 0) {\n break;\n }\n\n depth--;\n }\n\n queue += subqueue;\n subqueue = '';\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n queue += character;\n }\n\n index++;\n }\n\n subvalue += queue;\n url = queue;\n index = subvalue.length;\n }\n /* Eat white-space. */\n\n\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n subvalue += queue;\n /* Eat the title. */\n\n if (queue && own.call(markers, character)) {\n index++;\n subvalue += character;\n queue = '';\n marker = markers[character];\n beforeTitle = subvalue;\n /* In commonmark-mode, things are pretty easy: the\n * marker cannot occur inside the title.\n *\n * Non-commonmark does, however, support nested\n * delimiters. */\n\n if (commonmark) {\n while (index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n break;\n }\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n index++;\n queue += character;\n }\n\n character = value.charAt(index);\n\n if (character !== marker) {\n return;\n }\n\n title = queue;\n subvalue += queue + character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n subvalue += character;\n index++;\n }\n } else {\n subqueue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === marker) {\n if (hasMarker) {\n queue += marker + subqueue;\n subqueue = '';\n }\n\n hasMarker = true;\n } else if (!hasMarker) {\n queue += character;\n } else if (character === C_PAREN_CLOSE) {\n subvalue += queue + marker + subqueue;\n title = queue;\n break;\n } else if (whitespace(character)) {\n subqueue += character;\n } else {\n queue += marker + subqueue + character;\n subqueue = '';\n hasMarker = false;\n }\n\n index++;\n }\n }\n }\n\n if (value.charAt(index) !== C_PAREN_CLOSE) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n subvalue += C_PAREN_CLOSE;\n url = self.decode.raw(self.unescape(url), eat(beforeURL).test().end, {\n nonTerminated: false\n });\n\n if (title) {\n beforeTitle = eat(beforeTitle).test().end;\n title = self.decode.raw(self.unescape(title), beforeTitle);\n }\n\n node = {\n type: isImage ? 'image' : 'link',\n title: title || null,\n url: url\n };\n\n if (isImage) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n } else {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/link');\n\nvar normalize = require('../util/normalize');\n\nmodule.exports = reference;\nreference.locator = locate;\nvar T_LINK = 'link';\nvar T_IMAGE = 'image';\nvar T_FOOTNOTE = 'footnote';\nvar REFERENCE_TYPE_SHORTCUT = 'shortcut';\nvar REFERENCE_TYPE_COLLAPSED = 'collapsed';\nvar REFERENCE_TYPE_FULL = 'full';\nvar C_CARET = '^';\nvar C_BACKSLASH = '\\\\';\nvar C_BRACKET_OPEN = '[';\nvar C_BRACKET_CLOSE = ']';\n\nfunction reference(eat, value, silent) {\n var self = this;\n var character = value.charAt(0);\n var index = 0;\n var length = value.length;\n var subvalue = '';\n var intro = '';\n var type = T_LINK;\n var referenceType = REFERENCE_TYPE_SHORTCUT;\n var content;\n var identifier;\n var now;\n var node;\n var exit;\n var queue;\n var bracketed;\n var depth;\n /* Check whether we’re eating an image. */\n\n if (character === '!') {\n type = T_IMAGE;\n intro = character;\n character = value.charAt(++index);\n }\n\n if (character !== C_BRACKET_OPEN) {\n return;\n }\n\n index++;\n intro += character;\n queue = '';\n /* Check whether we’re eating a footnote. */\n\n if (self.options.footnotes && value.charAt(index) === C_CARET) {\n /* Exit if `![^` is found, so the `!` will be seen as text after this,\n * and we’ll enter this function again when `[^` is found. */\n if (type === T_IMAGE) {\n return;\n }\n\n intro += C_CARET;\n index++;\n type = T_FOOTNOTE;\n }\n /* Eat the text. */\n\n\n depth = 0;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_OPEN) {\n bracketed = true;\n depth++;\n } else if (character === C_BRACKET_CLOSE) {\n if (!depth) {\n break;\n }\n\n depth--;\n }\n\n if (character === C_BACKSLASH) {\n queue += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n\n subvalue = queue;\n content = queue;\n character = value.charAt(index);\n\n if (character !== C_BRACKET_CLOSE) {\n return;\n }\n\n index++;\n subvalue += character;\n queue = '';\n\n while (index < length) {\n character = value.charAt(index);\n\n if (!whitespace(character)) {\n break;\n }\n\n queue += character;\n index++;\n }\n\n character = value.charAt(index);\n /* Inline footnotes cannot have an identifier. */\n\n if (type !== T_FOOTNOTE && character === C_BRACKET_OPEN) {\n identifier = '';\n queue += character;\n index++;\n\n while (index < length) {\n character = value.charAt(index);\n\n if (character === C_BRACKET_OPEN || character === C_BRACKET_CLOSE) {\n break;\n }\n\n if (character === C_BACKSLASH) {\n identifier += C_BACKSLASH;\n character = value.charAt(++index);\n }\n\n identifier += character;\n index++;\n }\n\n character = value.charAt(index);\n\n if (character === C_BRACKET_CLOSE) {\n referenceType = identifier ? REFERENCE_TYPE_FULL : REFERENCE_TYPE_COLLAPSED;\n queue += identifier + character;\n index++;\n } else {\n identifier = '';\n }\n\n subvalue += queue;\n queue = '';\n } else {\n if (!content) {\n return;\n }\n\n identifier = content;\n }\n /* Brackets cannot be inside the identifier. */\n\n\n if (referenceType !== REFERENCE_TYPE_FULL && bracketed) {\n return;\n }\n\n subvalue = intro + subvalue;\n\n if (type === T_LINK && self.inLink) {\n return null;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n if (type === T_FOOTNOTE && content.indexOf(' ') !== -1) {\n return eat(subvalue)({\n type: 'footnote',\n children: this.tokenizeInline(content, eat.now())\n });\n }\n\n now = eat.now();\n now.column += intro.length;\n now.offset += intro.length;\n identifier = referenceType === REFERENCE_TYPE_FULL ? identifier : content;\n node = {\n type: type + 'Reference',\n identifier: normalize(identifier)\n };\n\n if (type === T_LINK || type === T_IMAGE) {\n node.referenceType = referenceType;\n }\n\n if (type === T_LINK) {\n exit = self.enterLink();\n node.children = self.tokenizeInline(content, now);\n exit();\n } else if (type === T_IMAGE) {\n node.alt = self.decode.raw(self.unescape(content), now) || null;\n }\n\n return eat(subvalue)(node);\n}","'use strict';\n\nvar trim = require('trim');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/strong');\n\nmodule.exports = strong;\nstrong.locator = locate;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\n\nfunction strong(eat, value, silent) {\n var self = this;\n var index = 0;\n var character = value.charAt(index);\n var now;\n var pedantic;\n var marker;\n var queue;\n var subvalue;\n var length;\n var prev;\n\n if (character !== C_ASTERISK && character !== C_UNDERSCORE || value.charAt(++index) !== character) {\n return;\n }\n\n pedantic = self.options.pedantic;\n marker = character;\n subvalue = marker + marker;\n length = value.length;\n index++;\n queue = '';\n character = '';\n\n if (pedantic && whitespace(value.charAt(index))) {\n return;\n }\n\n while (index < length) {\n prev = character;\n character = value.charAt(index);\n\n if (character === marker && value.charAt(index + 1) === marker && (!pedantic || !whitespace(prev))) {\n character = value.charAt(index + 2);\n\n if (character !== marker) {\n if (!trim(queue)) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column += 2;\n now.offset += 2;\n return eat(subvalue + queue + subvalue)({\n type: 'strong',\n children: self.tokenizeInline(queue, now)\n });\n }\n }\n\n if (!pedantic && character === '\\\\') {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var asterisk = value.indexOf('**', fromIndex);\n var underscore = value.indexOf('__', fromIndex);\n\n if (underscore === -1) {\n return asterisk;\n }\n\n if (asterisk === -1) {\n return underscore;\n }\n\n return underscore < asterisk ? underscore : asterisk;\n}","'use strict';\n\nvar trim = require('trim');\n\nvar word = require('is-word-character');\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/emphasis');\n\nmodule.exports = emphasis;\nemphasis.locator = locate;\nvar C_ASTERISK = '*';\nvar C_UNDERSCORE = '_';\n\nfunction emphasis(eat, value, silent) {\n var self = this;\n var index = 0;\n var character = value.charAt(index);\n var now;\n var pedantic;\n var marker;\n var queue;\n var subvalue;\n var length;\n var prev;\n\n if (character !== C_ASTERISK && character !== C_UNDERSCORE) {\n return;\n }\n\n pedantic = self.options.pedantic;\n subvalue = character;\n marker = character;\n length = value.length;\n index++;\n queue = '';\n character = '';\n\n if (pedantic && whitespace(value.charAt(index))) {\n return;\n }\n\n while (index < length) {\n prev = character;\n character = value.charAt(index);\n\n if (character === marker && (!pedantic || !whitespace(prev))) {\n character = value.charAt(++index);\n\n if (character !== marker) {\n if (!trim(queue) || prev === marker) {\n return;\n }\n\n if (!pedantic && marker === C_UNDERSCORE && word(character)) {\n queue += marker;\n continue;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n now = eat.now();\n now.column++;\n now.offset++;\n return eat(subvalue + queue + marker)({\n type: 'emphasis',\n children: self.tokenizeInline(queue, now)\n });\n }\n\n queue += marker;\n }\n\n if (!pedantic && character === '\\\\') {\n queue += character;\n character = value.charAt(++index);\n }\n\n queue += character;\n index++;\n }\n}","'use strict';\n\nmodule.exports = wordCharacter;\nvar fromCode = String.fromCharCode;\nvar re = /\\w/; // Check if the given character code, or the character code at the first\n// character, is a word character.\n\nfunction wordCharacter(character) {\n return re.test(typeof character === 'number' ? fromCode(character) : character.charAt(0));\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var asterisk = value.indexOf('*', fromIndex);\n var underscore = value.indexOf('_', fromIndex);\n\n if (underscore === -1) {\n return asterisk;\n }\n\n if (asterisk === -1) {\n return underscore;\n }\n\n return underscore < asterisk ? underscore : asterisk;\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/delete');\n\nmodule.exports = strikethrough;\nstrikethrough.locator = locate;\nvar C_TILDE = '~';\nvar DOUBLE = '~~';\n\nfunction strikethrough(eat, value, silent) {\n var self = this;\n var character = '';\n var previous = '';\n var preceding = '';\n var subvalue = '';\n var index;\n var length;\n var now;\n\n if (!self.options.gfm || value.charAt(0) !== C_TILDE || value.charAt(1) !== C_TILDE || whitespace(value.charAt(2))) {\n return;\n }\n\n index = 1;\n length = value.length;\n now = eat.now();\n now.column += 2;\n now.offset += 2;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === C_TILDE && previous === C_TILDE && (!preceding || !whitespace(preceding))) {\n /* istanbul ignore if - never used (yet) */\n if (silent) {\n return true;\n }\n\n return eat(DOUBLE + subvalue + DOUBLE)({\n type: 'delete',\n children: self.tokenizeInline(subvalue, now)\n });\n }\n\n subvalue += previous;\n preceding = previous;\n previous = character;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('~~', fromIndex);\n}","'use strict';\n\nvar whitespace = require('is-whitespace-character');\n\nvar locate = require('../locate/code-inline');\n\nmodule.exports = inlineCode;\ninlineCode.locator = locate;\nvar C_TICK = '`';\n/* Tokenise inline code. */\n\nfunction inlineCode(eat, value, silent) {\n var length = value.length;\n var index = 0;\n var queue = '';\n var tickQueue = '';\n var contentQueue;\n var subqueue;\n var count;\n var openingCount;\n var subvalue;\n var character;\n var found;\n var next;\n\n while (index < length) {\n if (value.charAt(index) !== C_TICK) {\n break;\n }\n\n queue += C_TICK;\n index++;\n }\n\n if (!queue) {\n return;\n }\n\n subvalue = queue;\n openingCount = index;\n queue = '';\n next = value.charAt(index);\n count = 0;\n\n while (index < length) {\n character = next;\n next = value.charAt(index + 1);\n\n if (character === C_TICK) {\n count++;\n tickQueue += character;\n } else {\n count = 0;\n queue += character;\n }\n\n if (count && next !== C_TICK) {\n if (count === openingCount) {\n subvalue += queue + tickQueue;\n found = true;\n break;\n }\n\n queue += tickQueue;\n tickQueue = '';\n }\n\n index++;\n }\n\n if (!found) {\n if (openingCount % 2 !== 0) {\n return;\n }\n\n queue = '';\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n contentQueue = '';\n subqueue = '';\n length = queue.length;\n index = -1;\n\n while (++index < length) {\n character = queue.charAt(index);\n\n if (whitespace(character)) {\n subqueue += character;\n continue;\n }\n\n if (subqueue) {\n if (contentQueue) {\n contentQueue += subqueue;\n }\n\n subqueue = '';\n }\n\n contentQueue += character;\n }\n\n return eat(subvalue)({\n type: 'inlineCode',\n value: contentQueue\n });\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n return value.indexOf('`', fromIndex);\n}","'use strict';\n\nvar locate = require('../locate/break');\n\nmodule.exports = hardBreak;\nhardBreak.locator = locate;\nvar MIN_BREAK_LENGTH = 2;\n\nfunction hardBreak(eat, value, silent) {\n var length = value.length;\n var index = -1;\n var queue = '';\n var character;\n\n while (++index < length) {\n character = value.charAt(index);\n\n if (character === '\\n') {\n if (index < MIN_BREAK_LENGTH) {\n return;\n }\n /* istanbul ignore if - never used (yet) */\n\n\n if (silent) {\n return true;\n }\n\n queue += character;\n return eat(queue)({\n type: 'break'\n });\n }\n\n if (character !== ' ') {\n return;\n }\n\n queue += character;\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nmodule.exports = locate;\n\nfunction locate(value, fromIndex) {\n var index = value.indexOf('\\n', fromIndex);\n\n while (index > fromIndex) {\n if (value.charAt(index - 1) !== ' ') {\n break;\n }\n\n index--;\n }\n\n return index;\n}","'use strict';\n\nmodule.exports = text;\n\nfunction text(eat, value, silent) {\n var self = this;\n var methods;\n var tokenizers;\n var index;\n var length;\n var subvalue;\n var position;\n var tokenizer;\n var name;\n var min;\n var now;\n /* istanbul ignore if - never used (yet) */\n\n if (silent) {\n return true;\n }\n\n methods = self.inlineMethods;\n length = methods.length;\n tokenizers = self.inlineTokenizers;\n index = -1;\n min = value.length;\n\n while (++index < length) {\n name = methods[index];\n\n if (name === 'text' || !tokenizers[name]) {\n continue;\n }\n\n tokenizer = tokenizers[name].locator;\n\n if (!tokenizer) {\n eat.file.fail('Missing locator: `' + name + '`');\n }\n\n position = tokenizer.call(self, value, 1);\n\n if (position !== -1 && position < min) {\n min = position;\n }\n }\n\n subvalue = value.slice(0, min);\n now = eat.now();\n self.decode(subvalue, now, function (content, position, source) {\n eat(source || content)({\n type: 'text',\n value: content\n });\n });\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/**\n * Naive, simple plugin to match inline nodes without attributes\n * This allows say <strong>foo</strong>, but not <strong class=\"very\">foo</strong>\n * For proper HTML support, you'll want a different plugin\n **/\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\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\nrequire(\"core-js/modules/es6.array.for-each\");\n\nvar visit = require('unist-util-visit');\n\nexports.ofType = function (types, mode) {\n return function (node) {\n types.forEach(function (type) {\n return visit(node, type, disallow, true);\n });\n return node;\n };\n\n function disallow(node, index, parent) {\n if (parent) {\n untangle(node, index, parent, mode);\n }\n }\n};\n\nexports.ifNotMatch = function (allowNode, mode) {\n return function (node) {\n visit(node, disallow, true);\n return node;\n };\n\n function disallow(node, index, parent) {\n if (parent && !allowNode(node, index, parent)) {\n untangle(node, index, parent, mode);\n }\n }\n};\n\nfunction untangle(node, index, parent, mode) {\n if (mode === 'remove') {\n parent.children.splice(index, 1);\n } else if (mode === 'unwrap') {\n var args = [index, 1];\n\n if (node.children) {\n args = args.concat(node.children);\n }\n\n Array.prototype.splice.apply(parent.children, args);\n }\n}","'use strict';\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nvar React = require('react');\n\nvar xtend = require('xtend');\n\nvar ReactIs = require('react-is');\n\nvar defaultNodePosition = {\n start: {\n line: 1,\n column: 1,\n offset: 0\n },\n end: {\n line: 1,\n column: 1,\n offset: 0\n }\n};\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 generated by plugins may not have position data\n // much of the code after this point will attempt to access properties of the node.position\n // this will set the node position to the parent node's position to prevent errors\n\n if (node.position === undefined) {\n node.position = parent.node && parent.node.position || defaultNodePosition;\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 isTagRenderer = typeof renderer === 'string'; // `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 && !isTagRenderer) {\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 && !isTagRenderer) {\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 ? opts.definitions[node.identifier] || {} : 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.tight = !node.loose;\n props.depth = node.depth;\n break;\n\n case 'listItem':\n props.checked = node.checked;\n props.tight = !node.loose;\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 alt: node.alt || undefined,\n title: node.title || undefined,\n src: opts.transformImageUri ? opts.transformImageUri(node.url, node.children, node.title, node.alt) : node.url\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 title: ref.title || undefined,\n alt: node.alt || 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.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.escapeHtml = opts.escapeHtml;\n props.skipHtml = opts.skipHtml;\n props.element = mergeNodeChildren(node, parsedChildren);\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 (!isTagRenderer && node.value) {\n props.value = node.value;\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 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 if (node.loose) {\n return node.children;\n }\n\n if (parent.node && node.index > 0 && parent.node.children[node.index - 1].loose) {\n return node.children;\n }\n\n return 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\nmodule.exports = astToReact;","'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}","/** @license React v16.10.2\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\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: !0\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.fundamental\") : 60117,\n w = b ? Symbol[\"for\"](\"react.responder\") : 60118,\n x = b ? Symbol[\"for\"](\"react.scope\") : 60119;\n\nfunction y(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 h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case t:\n case r:\n case d:\n return u;\n }\n }\n}\n\nfunction z(a) {\n return y(a) === m;\n}\n\nexports.typeOf = y;\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.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 === v || a.$$typeof === w || a.$$typeof === x);\n};\n\nexports.isAsyncMode = function (a) {\n return z(a) || y(a) === l;\n};\n\nexports.isConcurrentMode = z;\n\nexports.isContextConsumer = function (a) {\n return y(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return y(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 y(a) === n;\n};\n\nexports.isFragment = function (a) {\n return y(a) === e;\n};\n\nexports.isLazy = function (a) {\n return y(a) === t;\n};\n\nexports.isMemo = function (a) {\n return y(a) === r;\n};\n\nexports.isPortal = function (a) {\n return y(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return y(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return y(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return y(a) === p;\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\nrequire(\"core-js/modules/es6.array.reduce\");\n\nmodule.exports = function getDefinitions(node) {\n var defs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return (node.children || []).reduce(function (definitions, child) {\n if (child.type === 'definition') {\n definitions[child.identifier] = {\n href: child.url,\n title: child.title\n };\n }\n\n return getDefinitions(child, definitions);\n }, defs);\n};","\"use strict\";\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/es6.string.trim\");\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};","/* eslint-disable react/prop-types, react/no-multi-comp */\n'use strict';\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nvar xtend = require('xtend');\n\nvar React = require('react');\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 return supportsStringRender ? props.children : createElement('span', null, props.children);\n}\n\nfunction Root(props) {\n var useFragment = !props.className;\n var root = useFragment ? React.Fragment || 'div' : 'div';\n return createElement(root, useFragment ? null : props, 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 tag = props.isBlock ? 'div' : 'span';\n\n if (props.escapeHtml) {\n var comp = React.Fragment || tag;\n return createElement(comp, 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 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 return props['data-sourcepos'] ? {\n 'data-sourcepos': props['data-sourcepos']\n } : {};\n}","\"use strict\";\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nvar HtmlParser = '__RMD_HTML_PARSER__';\nexports.HtmlParser = typeof Symbol === 'undefined' ? HtmlParser : Symbol(HtmlParser);","module.exports = __webpack_public_path__ + \"static/github-0eee8229a901dc5cc729575220a93822.png\";","module.exports = __webpack_public_path__ + \"static/github-white-43dee6d3b49936e0e1e97ffc4a39f8ff.png\";"],"sourceRoot":""}