{"version":3,"sources":["../../node_modules/codemirror/mode/markdown/markdown.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","cmCfg","modeCfg","htmlMode","getMode","htmlModeMissing","name","findModeByName","found","mime","mimes","mode","highlightFormatting","undefined","maxBlockquoteDepth","taskLists","strikethrough","emoji","fencedCodeBlockHighlighting","fencedCodeBlockDefaultMode","xml","tokenTypeOverrides","tokenTypes","header","code","quote","list1","list2","list3","hr","image","imageAltText","imageMarker","formatting","linkInline","linkEmail","linkText","linkHref","em","strong","tokenType","hasOwnProperty","hrRE","listRE","taskListRE","atxHeaderRE","allowAtxHeaderWithoutSpace","setextHeaderRE","textRE","fencedCodeRE","linkDefRE","punctuation","expandedTab","switchInline","stream","state","f","inline","switchBlock","block","lineIsEmpty","line","test","string","blankLine","linkTitle","indentedCode","htmlBlock","exit","inner","innerMode","htmlState","tagStart","context","tokenize","isInText","inlineNormal","blockNormal","trailingSpace","trailingSpaceNewLine","prevLine","thisLine","firstTokenOnLine","column","indentation","prevLineLineIsEmpty","prevLineIsIndentedCode","prevLineIsHr","prevLineIsList","list","maxNonCodeIndentation","listStack","length","lineIndentation","indentationDiff","pop","allowsInlineContinuation","fencedCodeEnd","isHr","match","skipToEnd","eatSpace","getType","eat","setext","listType","current","push","taskList","fencedEndRE","RegExp","localMode","localState","startState","local","lookAhead","charAt","peek","footnoteLink","style","token","md_inside","indexOf","currListInd","hasExitedList","maxFencedEndInd","returnType","styles","i","taskOpen","join","taskClosed","listMod","handleText","text","ch","next","matchCh","replace","regex","previousFormatting","eatWhile","count","t","type","formattingEscape","end","pos","atts","substring","start","backUp","len","before","after","leftFlanking","rightFlanking","setEm","setStrong","retType","getLinkHrefInside","linkRE",")","]","endChar","returnState","footnoteLinkInside","footnoteUrl","copyState","s","slice","indent","textAfter","Pass","blockCommentStart","blockCommentEnd","closeBrackets","fold","defineMIME"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,wBAAyBA,QAAQ,cAAeA,QAAQ,gBACjE,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,uBAAwB,aAAc,WAAYJ,OAE1DA,GAAIM,cACL,SAASA,GACZ,YAEAA,GAAWC,WAAW,WAAY,SAASC,EAAOC,GAEhD,GAAIC,GAAWJ,EAAWK,QAAQH,EAAO,YACzC,IAAII,GAAkBF,EAASG,MAAQ,MAEvC,SAASF,GAAQE,GACf,GAAIP,EAAWQ,eAAgB,CAC7B,GAAIC,GAAQT,EAAWQ,eAAeD,EACtC,IAAIE,EAAOF,EAAOE,EAAMC,MAAQD,EAAME,MAAM,GAE9C,GAAIC,GAAOZ,EAAWK,QAAQH,EAAOK,EACrC,OAAOK,GAAKL,MAAQ,OAAS,KAAOK,EAKtC,GAAIT,EAAQU,sBAAwBC,UAClCX,EAAQU,oBAAsB,KAIhC,IAAIV,EAAQY,qBAAuBD,UACjCX,EAAQY,mBAAqB,CAG/B,IAAIZ,EAAQa,YAAcF,UAAWX,EAAQa,UAAY,KAGzD,IAAIb,EAAQc,gBAAkBH,UAC5BX,EAAQc,cAAgB,KAE1B,IAAId,EAAQe,QAAUJ,UACpBX,EAAQe,MAAQ,KAElB,IAAIf,EAAQgB,8BAAgCL,UAC1CX,EAAQgB,4BAA8B,IAExC,IAAIhB,EAAQiB,6BAA+BN,UACzCX,EAAQiB,2BAA6B,YAEvC,IAAIjB,EAAQkB,MAAQP,UAClBX,EAAQkB,IAAM,IAGhB,IAAIlB,EAAQmB,qBAAuBR,UACjCX,EAAQmB,qBAEV,IAAIC,IACFC,OAAQ,SACRC,KAAM,UACNC,MAAO,QACPC,MAAO,aACPC,MAAO,aACPC,MAAO,UACPC,GAAI,KACJC,MAAO,QACPC,aAAc,iBACdC,YAAa,eACbC,WAAY,aACZC,WAAY,OACZC,UAAW,OACXC,SAAU,OACVC,SAAU,SACVC,GAAI,KACJC,OAAQ,SACRvB,cAAe,gBACfC,MAAO,UAGT,KAAK,GAAIuB,KAAalB,GAAY,CAChC,GAAIA,EAAWmB,eAAeD,IAActC,EAAQmB,mBAAmBmB,GAAY,CACjFlB,EAAWkB,GAAatC,EAAQmB,mBAAmBmB,IAIvD,GAAIE,GAAO,6BACPC,EAAS,+BACTC,EAAa,oBACbC,EAAc3C,EAAQ4C,2BAA6B,QAAU,eAC7DC,EAAiB,8BACjBC,EAAS,2BACTC,EAAe,yCACfC,EAAY,sBACZC,EAAc,mpDACdC,EAAc,MAElB,SAASC,GAAaC,EAAQC,EAAOC,GACnCD,EAAMC,EAAID,EAAME,OAASD,CACzB,OAAOA,GAAEF,EAAQC,GAGnB,QAASG,GAAYJ,EAAQC,EAAOC,GAClCD,EAAMC,EAAID,EAAMI,MAAQH,CACxB,OAAOA,GAAEF,EAAQC,GAGnB,QAASK,GAAYC,GACnB,OAAQA,IAAS,KAAKC,KAAKD,EAAKE,QAKlC,QAASC,GAAUT,GAEjBA,EAAMU,UAAY,KAClBV,GAAMlB,SAAW,KACjBkB,GAAMnB,SAAW,KAEjBmB,GAAMjB,GAAK,KAEXiB,GAAMhB,OAAS,KAEfgB,GAAMvC,cAAgB,KAEtBuC,GAAM9B,MAAQ,CAEd8B,GAAMW,aAAe,KACrB,IAAIX,EAAMC,GAAKW,EAAW,CACxB,GAAIC,GAAO/D,CACX,KAAK+D,EAAM,CACT,GAAIC,GAAQtE,EAAWuE,UAAUnE,EAAUoD,EAAMgB,UACjDH,GAAOC,EAAM1D,KAAKL,MAAQ,OAAS+D,EAAMd,MAAMiB,WAAa,QACxDH,EAAMd,MAAMkB,SAAWJ,EAAMd,MAAMmB,SAASC,UAElD,GAAIP,EAAM,CACRb,EAAMC,EAAIoB,CACVrB,GAAMI,MAAQkB,CACdtB,GAAMgB,UAAY,MAItBhB,EAAMuB,cAAgB,CACtBvB,GAAMwB,qBAAuB,KAE7BxB,GAAMyB,SAAWzB,EAAM0B,QACvB1B,GAAM0B,UAAY3B,OAAQ,KAC1B,OAAO,MAGT,QAASuB,GAAYvB,EAAQC,GAC3B,GAAI2B,GAAmB5B,EAAO6B,WAAa5B,EAAM6B,WACjD,IAAIC,GAAsBzB,EAAYL,EAAMyB,SAAS1B,OACrD,IAAIgC,GAAyB/B,EAAMW,YACnC,IAAIqB,GAAehC,EAAMyB,SAASnD,EAClC,IAAI2D,GAAiBjC,EAAMkC,OAAS,KACpC,IAAIC,IAAyBnC,EAAMoC,UAAUpC,EAAMoC,UAAUC,OAAS,IAAM,GAAK,CAEjFrC,GAAMW,aAAe,KAErB,IAAI2B,GAAkBtC,EAAM6B,WAE5B,IAAI7B,EAAMuC,kBAAoB,KAAM,CAClCvC,EAAMuC,gBAAkBvC,EAAM6B,WAC9B,IAAII,EAAgB,CAClBjC,EAAMkC,KAAO,IAIb,OAAOI,EAAkBtC,EAAMoC,UAAUpC,EAAMoC,UAAUC,OAAS,GAAI,CACpErC,EAAMoC,UAAUI,KAChB,IAAIxC,EAAMoC,UAAUC,OAAQ,CAC1BrC,EAAM6B,YAAc7B,EAAMoC,UAAUpC,EAAMoC,UAAUC,OAAS,OAExD,CACLrC,EAAMkC,KAAO,OAGjB,GAAIlC,EAAMkC,OAAS,MAAO,CACxBlC,EAAMuC,gBAAkBD,EAAkBtC,EAAMoC,UAAUpC,EAAMoC,UAAUC,OAAS,KAMzF,GAAII,IACCX,IAAwBE,IAAiBhC,EAAMyB,SAASzD,UACvDiE,IAAmBF,KACpB/B,EAAMyB,SAASiB,aAGpB,IAAIC,IAAQ3C,EAAMkC,OAAS,OAASF,GAAgBF,IAClD9B,EAAM6B,aAAeM,GAAyBpC,EAAO6C,MAAMzD,EAE7D,IAAIyD,GAAQ,IACZ,IAAI5C,EAAMuC,iBAAmB,IAAMR,GAA0B/B,EAAMyB,SAASiB,eACvE1C,EAAMyB,SAASzD,QAAU8D,GAAsB,CAClD/B,EAAO8C,WACP7C,GAAMW,aAAe,IACrB,OAAO5C,GAAWE,SACb,IAAI8B,EAAO+C,WAAY,CAC5B,MAAO,UACF,IAAInB,GAAoB3B,EAAM6B,aAAeM,IAA0BS,EAAQ7C,EAAO6C,MAAMtD,KAAiBsD,EAAM,GAAGP,QAAU,EAAG,CACxIrC,EAAM9B,MAAQ,CACd8B,GAAMhC,OAAS4E,EAAM,GAAGP,MACxBrC,GAAM0B,SAAS1D,OAAS,IACxB,IAAIrB,EAAQU,oBAAqB2C,EAAMtB,WAAa,QACpDsB,GAAMC,EAAID,EAAME,MAChB,OAAO6C,GAAQ/C,OACV,IAAIA,EAAM6B,aAAeM,GAAyBpC,EAAOiD,IAAI,KAAM,CACxEhD,EAAM9B,MAAQyD,EAAmB,EAAI3B,EAAM9B,MAAQ,CACnD,IAAIvB,EAAQU,oBAAqB2C,EAAMtB,WAAa,OACpDqB,GAAO+C,UACP,OAAOC,GAAQ/C,OACV,KAAK2C,IAAS3C,EAAMiD,QAAUtB,GAAoB3B,EAAM6B,aAAeM,IAA0BS,EAAQ7C,EAAO6C,MAAMxD,IAAU,CACrI,GAAI8D,GAAWN,EAAM,GAAK,KAAO,IAEjC5C,GAAM6B,YAAcS,EAAkBvC,EAAOoD,UAAUd,MACvDrC,GAAMkC,KAAO,IACblC,GAAM9B,MAAQ,CAGd8B,GAAMoC,UAAUgB,KAAKpD,EAAM6B,YAE3B7B,GAAMjB,GAAK,KACXiB,GAAMhB,OAAS,KACfgB,GAAM/B,KAAO,KACb+B,GAAMvC,cAAgB,KAEtB,IAAId,EAAQa,WAAauC,EAAO6C,MAAMvD,EAAY,OAAQ,CACxDW,EAAMqD,SAAW,KAEnBrD,EAAMC,EAAID,EAAME,MAChB,IAAIvD,EAAQU,oBAAqB2C,EAAMtB,YAAc,OAAQ,QAAUwE,EACvE,OAAOH,GAAQ/C,OACV,IAAI2B,GAAoB3B,EAAM6B,aAAeM,IAA0BS,EAAQ7C,EAAO6C,MAAMlD,EAAc,OAAQ,CACvHM,EAAM9B,MAAQ,CACd8B,GAAMsD,YAAc,GAAIC,QAAOX,EAAM,GAAK,OAE1C5C,GAAMwD,UAAY7G,EAAQgB,6BAA+Bd,EAAQ+F,EAAM,IAAMjG,EAAQiB,2BACrF,IAAIoC,EAAMwD,UAAWxD,EAAMyD,WAAajH,EAAWkH,WAAW1D,EAAMwD,UACpExD,GAAMC,EAAID,EAAMI,MAAQuD,CACxB,IAAIhH,EAAQU,oBAAqB2C,EAAMtB,WAAa,YACpDsB,GAAM/B,MAAQ,CACd,OAAO8E,GAAQ/C,OAGV,IAELA,EAAMiD,UAEFR,IAA6BR,KAAoBjC,EAAM9B,OAAS8B,EAAMkC,OAAS,QAChFlC,EAAM/B,OAAS0E,IAAShD,EAAUY,KAAKR,EAAOS,UAC9CoC,EAAQ7C,EAAO6D,UAAU,MAAQhB,EAAQA,EAAMA,MAAMpD,IAExD,CACA,IAAMQ,EAAMiD,OAAS,CACnBjD,EAAMhC,OAAS4E,EAAM,GAAGiB,OAAO,IAAM,IAAM,EAAI,CAC/C7D,GAAMiD,OAASjD,EAAMhC,WAChB,CACLgC,EAAMhC,OAASgC,EAAMiD,MAErBjD,GAAMiD,OAAS,CACflD,GAAO8C,WACP,IAAIlG,EAAQU,oBAAqB2C,EAAMtB,WAAa,SAEtDsB,EAAM0B,SAAS1D,OAAS,IACxBgC,GAAMC,EAAID,EAAME,MAChB,OAAO6C,GAAQ/C,OACV,IAAI2C,EAAM,CACf5C,EAAO8C,WACP7C,GAAM1B,GAAK,IACX0B,GAAM0B,SAASpD,GAAK,IACpB,OAAOP,GAAWO,OACb,IAAIyB,EAAO+D,SAAW,IAAK,CAChC,MAAOhE,GAAaC,EAAQC,EAAO+D,GAGrC,MAAOjE,GAAaC,EAAQC,EAAOA,EAAME,QAG3C,QAASU,GAAUb,EAAQC,GACzB,GAAIgE,GAAQpH,EAASqH,MAAMlE,EAAQC,EAAMgB,UACzC,KAAKlE,EAAiB,CACpB,GAAIgE,GAAQtE,EAAWuE,UAAUnE,EAAUoD,EAAMgB,UACjD,IAAKF,EAAM1D,KAAKL,MAAQ,OAAS+D,EAAMd,MAAMiB,WAAa,QACnDH,EAAMd,MAAMkB,SAAWJ,EAAMd,MAAMmB,SAASC,WAC9CpB,EAAMkE,WAAanE,EAAOoD,UAAUgB,QAAQ,MAAQ,EAAI,CAC3DnE,EAAMC,EAAIoB,CACVrB,GAAMI,MAAQkB,CACdtB,GAAMgB,UAAY,MAGtB,MAAOgD,GAGT,QAASL,GAAM5D,EAAQC,GACrB,GAAIoE,GAAcpE,EAAMoC,UAAUpC,EAAMoC,UAAUC,OAAS,IAAM,CACjE,IAAIgC,GAAgBrE,EAAM6B,YAAcuC,CACxC,IAAIE,GAAkBF,EAAc,CACpC,IAAIpE,EAAMsD,aAAetD,EAAM6B,aAAeyC,IAAoBD,GAAiBtE,EAAO6C,MAAM5C,EAAMsD,cAAe,CACnH,GAAI3G,EAAQU,oBAAqB2C,EAAMtB,WAAa,YACpD,IAAI6F,EACJ,KAAKF,EAAeE,EAAaxB,EAAQ/C,EACzCA,GAAMwD,UAAYxD,EAAMyD,WAAa,IACrCzD,GAAMI,MAAQkB,CACdtB,GAAMC,EAAIoB,CACVrB,GAAMsD,YAAc,IACpBtD,GAAM/B,KAAO,CACb+B,GAAM0B,SAASgB,cAAgB,IAC/B,IAAI2B,EAAe,MAAOlE,GAAYJ,EAAQC,EAAOA,EAAMI,MAC3D,OAAOmE,OACF,IAAIvE,EAAMwD,UAAW,CAC1B,MAAOxD,GAAMwD,UAAUS,MAAMlE,EAAQC,EAAMyD,gBACtC,CACL1D,EAAO8C,WACP,OAAO9E,GAAWE,MAKtB,QAAS8E,GAAQ/C,GACf,GAAIwE,KAEJ,IAAIxE,EAAMtB,WAAY,CACpB8F,EAAOpB,KAAKrF,EAAWW,WAEvB,UAAWsB,GAAMtB,aAAe,SAAUsB,EAAMtB,YAAcsB,EAAMtB,WAEpE,KAAK,GAAI+F,GAAI,EAAGA,EAAIzE,EAAMtB,WAAW2D,OAAQoC,IAAK,CAChDD,EAAOpB,KAAKrF,EAAWW,WAAa,IAAMsB,EAAMtB,WAAW+F,GAE3D,IAAIzE,EAAMtB,WAAW+F,KAAO,SAAU,CACpCD,EAAOpB,KAAKrF,EAAWW,WAAa,IAAMsB,EAAMtB,WAAW+F,GAAK,IAAMzE,EAAMhC,QAK9E,GAAIgC,EAAMtB,WAAW+F,KAAO,QAAS,CACnC,IAAK9H,EAAQY,oBAAsBZ,EAAQY,oBAAsByC,EAAM9B,MAAO,CAC5EsG,EAAOpB,KAAKrF,EAAWW,WAAa,IAAMsB,EAAMtB,WAAW+F,GAAK,IAAMzE,EAAM9B,WACvE,CACLsG,EAAOpB,KAAK,YAMpB,GAAIpD,EAAM0E,SAAU,CAClBF,EAAOpB,KAAK,OACZ,OAAOoB,GAAOnC,OAASmC,EAAOG,KAAK,KAAO,KAE5C,GAAI3E,EAAM4E,WAAY,CACpBJ,EAAOpB,KAAK,WACZ,OAAOoB,GAAOnC,OAASmC,EAAOG,KAAK,KAAO,KAG5C,GAAI3E,EAAMlB,SAAU,CAClB0F,EAAOpB,KAAKrF,EAAWe,SAAU,WAC5B,CACL,GAAIkB,EAAMhB,OAAQ,CAAEwF,EAAOpB,KAAKrF,EAAWiB,QAC3C,GAAIgB,EAAMjB,GAAI,CAAEyF,EAAOpB,KAAKrF,EAAWgB,IACvC,GAAIiB,EAAMvC,cAAe,CAAE+G,EAAOpB,KAAKrF,EAAWN,eAClD,GAAIuC,EAAMtC,MAAO,CAAE8G,EAAOpB,KAAKrF,EAAWL,OAC1C,GAAIsC,EAAMnB,SAAU,CAAE2F,EAAOpB,KAAKrF,EAAWc,UAC7C,GAAImB,EAAM/B,KAAM,CAAEuG,EAAOpB,KAAKrF,EAAWE,MACzC,GAAI+B,EAAMzB,MAAO,CAAEiG,EAAOpB,KAAKrF,EAAWQ,OAC1C,GAAIyB,EAAMxB,aAAc,CAAEgG,EAAOpB,KAAKrF,EAAWS,aAAc,QAC/D,GAAIwB,EAAMvB,YAAa,CAAE+F,EAAOpB,KAAKrF,EAAWU,cAGlD,GAAIuB,EAAMhC,OAAQ,CAAEwG,EAAOpB,KAAKrF,EAAWC,OAAQD,EAAWC,OAAS,IAAMgC,EAAMhC,QAEnF,GAAIgC,EAAM9B,MAAO,CACfsG,EAAOpB,KAAKrF,EAAWG,MAGvB,KAAKvB,EAAQY,oBAAsBZ,EAAQY,oBAAsByC,EAAM9B,MAAO,CAC5EsG,EAAOpB,KAAKrF,EAAWG,MAAQ,IAAM8B,EAAM9B,WACtC,CACLsG,EAAOpB,KAAKrF,EAAWG,MAAQ,IAAMvB,EAAQY,qBAIjD,GAAIyC,EAAMkC,OAAS,MAAO,CACxB,GAAI2C,IAAW7E,EAAMoC,UAAUC,OAAS,GAAK,CAC7C,KAAKwC,EAAS,CACZL,EAAOpB,KAAKrF,EAAWI,WAClB,IAAI0G,IAAY,EAAG,CACxBL,EAAOpB,KAAKrF,EAAWK,WAClB,CACLoG,EAAOpB,KAAKrF,EAAWM,QAI3B,GAAI2B,EAAMwB,qBAAsB,CAC9BgD,EAAOpB,KAAK,+BACP,IAAIpD,EAAMuB,cAAe,CAC9BiD,EAAOpB,KAAK,mBAAqBpD,EAAMuB,cAAgB,EAAI,IAAM,MAGnE,MAAOiD,GAAOnC,OAASmC,EAAOG,KAAK,KAAO,KAG5C,QAASG,GAAW/E,EAAQC,GAC1B,GAAID,EAAO6C,MAAMnD,EAAQ,MAAO,CAC9B,MAAOsD,GAAQ/C,GAEjB,MAAO1C,WAGT,QAAS+D,GAAatB,EAAQC,GAC5B,GAAIgE,GAAQhE,EAAM+E,KAAKhF,EAAQC,EAC/B,UAAWgE,KAAU,YACnB,MAAOA,EAET,IAAIhE,EAAMkC,KAAM,CACdlC,EAAMkC,KAAO,IACb,OAAOa,GAAQ/C,GAGjB,GAAIA,EAAMqD,SAAU,CAClB,GAAIqB,GAAW3E,EAAO6C,MAAMvD,EAAY,MAAM,KAAO,GACrD,IAAIqF,EAAU1E,EAAM0E,SAAW,SAC1B1E,GAAM4E,WAAa,IACxB,IAAIjI,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpDsB,GAAMqD,SAAW,KACjB,OAAON,GAAQ/C,GAGjBA,EAAM0E,SAAW,KACjB1E,GAAM4E,WAAa,KAEnB,IAAI5E,EAAMhC,QAAU+B,EAAO6C,MAAM,OAAQ,MAAO,CAC9C,GAAIjG,EAAQU,oBAAqB2C,EAAMtB,WAAa,QACpD,OAAOqE,GAAQ/C,GAGjB,GAAIgF,GAAKjF,EAAOkF,MAGhB,IAAIjF,EAAMU,UAAW,CACnBV,EAAMU,UAAY,KAClB,IAAIwE,GAAUF,CACd,IAAIA,IAAO,IAAK,CACdE,EAAU,IAEZA,GAAWA,EAAQ,IAAIC,QAAQ,yBAA0B,OACzD,IAAIC,GAAQ,aAAeF,EAAU,yBAA2BA,CAChE,IAAInF,EAAO6C,MAAM,GAAIW,QAAO6B,GAAQ,MAAO,CACzC,MAAOrH,GAAWe,UAKtB,GAAIkG,IAAO,IAAK,CACd,GAAIK,GAAqBrF,EAAMtB,UAC/B,IAAI/B,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpDqB,GAAOuF,SAAS,IAChB,IAAIC,GAAQxF,EAAOoD,UAAUd,MAC7B,IAAIrC,EAAM/B,MAAQ,KAAO+B,EAAM9B,OAASqH,GAAS,GAAI,CACnDvF,EAAM/B,KAAOsH,CACb,OAAOxC,GAAQ/C,OACV,IAAIuF,GAASvF,EAAM/B,KAAM,CAC9B,GAAIuH,GAAIzC,EAAQ/C,EAChBA,GAAM/B,KAAO,CACb,OAAOuH,OACF,CACLxF,EAAMtB,WAAa2G,CACnB,OAAOtC,GAAQ/C,QAEZ,IAAIA,EAAM/B,KAAM,CACrB,MAAO8E,GAAQ/C,GAGjB,GAAIgF,IAAO,KAAM,CACfjF,EAAOkF,MACP,IAAItI,EAAQU,oBAAqB,CAC/B,GAAIoI,GAAO1C,EAAQ/C,EACnB,IAAI0F,GAAmB3H,EAAWW,WAAa,SAC/C,OAAO+G,GAAOA,EAAO,IAAMC,EAAmBA,GAIlD,GAAIV,IAAO,KAAOjF,EAAO6C,MAAM,wBAAyB,OAAQ,CAC9D5C,EAAMvB,YAAc,IACpBuB,GAAMzB,MAAQ,IACd,IAAI5B,EAAQU,oBAAqB2C,EAAMtB,WAAa,OACpD,OAAOqE,GAAQ/C,GAGjB,GAAIgF,IAAO,KAAOhF,EAAMvB,aAAesB,EAAO6C,MAAM,8BAA+B,OAAQ,CACzF5C,EAAMvB,YAAc,KACpBuB,GAAMxB,aAAe,IACrB,IAAI7B,EAAQU,oBAAqB2C,EAAMtB,WAAa,OACpD,OAAOqE,GAAQ/C,GAGjB,GAAIgF,IAAO,KAAOhF,EAAMxB,aAAc,CACpC,GAAI7B,EAAQU,oBAAqB2C,EAAMtB,WAAa,OACpD,IAAI+G,GAAO1C,EAAQ/C,EACnBA,GAAMxB,aAAe,KACrBwB,GAAMzB,MAAQ,KACdyB,GAAME,OAASF,EAAMC,EAAInB,CACzB,OAAO2G,GAGT,GAAIT,IAAO,MAAQhF,EAAMzB,MAAO,CAC9B,GAAIyB,EAAMnB,UAAYkB,EAAO6C,MAAM,UAAW,MAAOG,GAAQ/C,EAC7DA,GAAMnB,SAAW,IACjB,IAAIlC,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpD,OAAOqE,GAAQ/C,GAGjB,GAAIgF,IAAO,KAAOhF,EAAMnB,SAAU,CAChC,GAAIlC,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpD,IAAI+G,GAAO1C,EAAQ/C,EACnBA,GAAMnB,SAAW,KACjBmB,GAAME,OAASF,EAAMC,EAAIF,EAAO6C,MAAM,oBAAqB,OAAS9D,EAAWuC,CAC/E,OAAOoE,GAGT,GAAIT,IAAO,KAAOjF,EAAO6C,MAAM,uCAAwC,OAAQ,CAC7E5C,EAAMC,EAAID,EAAME,OAASvB,CACzB,IAAIhC,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpD,IAAI+G,GAAO1C,EAAQ/C,EACnB,IAAIyF,EAAK,CACPA,GAAQ,QACH,CACLA,EAAO,GAET,MAAOA,GAAO1H,EAAWY,WAG3B,GAAIqG,IAAO,KAAOjF,EAAO6C,MAAM,6BAA8B,OAAQ,CACnE5C,EAAMC,EAAID,EAAME,OAASvB,CACzB,IAAIhC,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpD,IAAI+G,GAAO1C,EAAQ/C,EACnB,IAAIyF,EAAK,CACPA,GAAQ,QACH,CACLA,EAAO,GAET,MAAOA,GAAO1H,EAAWa,UAG3B,GAAIjC,EAAQkB,KAAOmH,IAAO,KAAOjF,EAAO6C,MAAM,sFAAuF,OAAQ,CAC3I,GAAI+C,GAAM5F,EAAOS,OAAO2D,QAAQ,IAAKpE,EAAO6F,IAC5C,IAAID,IAAQ,EAAG,CACb,GAAIE,GAAO9F,EAAOS,OAAOsF,UAAU/F,EAAOgG,MAAOJ,EACjD,IAAI,uCAAuCpF,KAAKsF,GAAO7F,EAAMkE,UAAY,KAE3EnE,EAAOiG,OAAO,EACdhG,GAAMgB,UAAYxE,EAAWkH,WAAW9G,EACxC,OAAOuD,GAAYJ,EAAQC,EAAOY,GAGpC,GAAIjE,EAAQkB,KAAOmH,IAAO,KAAOjF,EAAO6C,MAAM,YAAa,CACzD5C,EAAMkE,UAAY,KAClB,OAAO,UACF,IAAIc,IAAO,KAAOA,IAAO,IAAK,CACnC,GAAIiB,GAAM,EAAGC,EAASnG,EAAO6F,KAAO,EAAI,IAAM7F,EAAOS,OAAOqD,OAAO9D,EAAO6F,IAAM,EAChF,OAAOK,EAAM,GAAKlG,EAAOiD,IAAIgC,GAAKiB,GAClC,IAAIE,GAAQpG,EAAO+D,QAAU,GAE7B,IAAIsC,IAAgB,KAAK7F,KAAK4F,MAAYvG,EAAYW,KAAK4F,IAAU,KAAK5F,KAAK2F,IAAWtG,EAAYW,KAAK2F,GAC3G,IAAIG,IAAiB,KAAK9F,KAAK2F,MAAatG,EAAYW,KAAK2F,IAAW,KAAK3F,KAAK4F,IAAUvG,EAAYW,KAAK4F,GAC7G,IAAIG,GAAQ,KAAMC,EAAY,IAC9B,IAAIN,EAAM,EAAG,CACX,IAAKjG,EAAMjB,IAAMqH,IAAiBpB,IAAO,MAAQqB,GAAiBzG,EAAYW,KAAK2F,IACjFI,EAAQ,SACL,IAAItG,EAAMjB,IAAMiG,GAAMqB,IAAkBrB,IAAO,MAAQoB,GAAgBxG,EAAYW,KAAK4F,IAC3FG,EAAQ,MAEZ,GAAIL,EAAM,EAAG,CACX,IAAKjG,EAAMhB,QAAUoH,IAAiBpB,IAAO,MAAQqB,GAAiBzG,EAAYW,KAAK2F,IACrFK,EAAY,SACT,IAAIvG,EAAMhB,QAAUgG,GAAMqB,IAAkBrB,IAAO,MAAQoB,GAAgBxG,EAAYW,KAAK4F,IAC/FI,EAAY,MAEhB,GAAIA,GAAa,MAAQD,GAAS,KAAM,CACtC,GAAI3J,EAAQU,oBAAqB2C,EAAMtB,WAAa4H,GAAS,KAAO,SAAWC,GAAa,KAAO,KAAO,WAC1G,IAAID,IAAU,KAAMtG,EAAMjB,GAAKiG,CAC/B,IAAIuB,IAAc,KAAMvG,EAAMhB,OAASgG,CACvC,IAAIQ,GAAIzC,EAAQ/C,EAChB,IAAIsG,IAAU,MAAOtG,EAAMjB,GAAK,KAChC,IAAIwH,IAAc,MAAOvG,EAAMhB,OAAS,KACxC,OAAOwG,QAEJ,IAAIR,IAAO,IAAK,CACrB,GAAIjF,EAAOiD,IAAI,MAAQjD,EAAOiD,IAAI,KAAM,CACtC,GAAIjD,EAAO+D,SAAW,IAAK,CACzB,MAAOf,GAAQ/C,OACV,CACLD,EAAOiG,OAAO,KAKpB,GAAIrJ,EAAQc,cAAe,CACzB,GAAIuH,IAAO,KAAOjF,EAAOuF,SAASN,GAAK,CACrC,GAAIhF,EAAMvC,cAAe,CACvB,GAAId,EAAQU,oBAAqB2C,EAAMtB,WAAa,eACpD,IAAI8G,GAAIzC,EAAQ/C,EAChBA,GAAMvC,cAAgB,KACtB,OAAO+H,OACF,IAAIzF,EAAO6C,MAAM,SAAU,OAAQ,CACxC5C,EAAMvC,cAAgB,IACtB,IAAId,EAAQU,oBAAqB2C,EAAMtB,WAAa,eACpD,OAAOqE,GAAQ/C,QAEZ,IAAIgF,IAAO,IAAK,CACrB,GAAIjF,EAAO6C,MAAM,MAAO,MAAO,CAC7B,GAAI7C,EAAO+D,SAAW,IAAK,CACzB,MAAOf,GAAQ/C,OACV,CACLD,EAAOiG,OAAO,MAMtB,GAAIrJ,EAAQe,OAASsH,IAAO,KAAOjF,EAAO6C,MAAM,qDAAsD,CACpG5C,EAAMtC,MAAQ,IACd,IAAIf,EAAQU,oBAAqB2C,EAAMtB,WAAa,OACpD,IAAI8H,GAAUzD,EAAQ/C,EACtBA,GAAMtC,MAAQ,KACd,OAAO8I,GAGT,GAAIxB,IAAO,IAAK,CACd,GAAIjF,EAAO6C,MAAM,OAAQ,OAAQ,CAC/B5C,EAAMuB,oBACD,IAAIvB,EAAMuB,cAAe,CAC9BvB,EAAMwB,qBAAuB,MAIjC,MAAOuB,GAAQ/C,GAGjB,QAASrB,GAAWoB,EAAQC,GAC1B,GAAIgF,GAAKjF,EAAOkF,MAEhB,IAAID,IAAO,IAAK,CACdhF,EAAMC,EAAID,EAAME,OAASmB,CACzB,IAAI1E,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpD,IAAI+G,GAAO1C,EAAQ/C,EACnB,IAAIyF,EAAK,CACPA,GAAQ,QACH,CACLA,EAAO,GAET,MAAOA,GAAO1H,EAAWY,WAG3BoB,EAAO6C,MAAM,SAAU,KAEvB,OAAO7E,GAAWY,WAGpB,QAASG,GAASiB,EAAQC,GAExB,GAAGD,EAAO+C,WAAW,CACnB,MAAO,MAET,GAAIkC,GAAKjF,EAAOkF,MAChB,IAAID,IAAO,KAAOA,IAAO,IAAK,CAC5BhF,EAAMC,EAAID,EAAME,OAASuG,EAAkBzB,IAAO,IAAM,IAAM,IAC9D,IAAIrI,EAAQU,oBAAqB2C,EAAMtB,WAAa,aACpDsB,GAAMlB,SAAW,IACjB,OAAOiE,GAAQ/C,GAEjB,MAAO,QAGT,GAAI0G,IACFC,IAAK,oDACLC,IAAK,oDAGP,SAASH,GAAkBI,GACzB,MAAO,UAAS9G,EAAQC,GACtB,GAAIgF,GAAKjF,EAAOkF,MAEhB,IAAID,IAAO6B,EAAS,CAClB7G,EAAMC,EAAID,EAAME,OAASmB,CACzB,IAAI1E,EAAQU,oBAAqB2C,EAAMtB,WAAa,aACpD,IAAIoI,GAAc/D,EAAQ/C,EAC1BA,GAAMlB,SAAW,KACjB,OAAOgI,GAGT/G,EAAO6C,MAAM8D,EAAOG,GACpB7G,GAAMlB,SAAW,IACjB,OAAOiE,GAAQ/C,IAInB,QAAS+D,GAAahE,EAAQC,GAC5B,GAAID,EAAO6C,MAAM,qBAAsB,OAAQ,CAC7C5C,EAAMC,EAAI8G,CACVhH,GAAOkF,MACP,IAAItI,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpDsB,GAAMnB,SAAW,IACjB,OAAOkE,GAAQ/C,GAEjB,MAAOF,GAAaC,EAAQC,EAAOqB,GAGrC,QAAS0F,GAAmBhH,EAAQC,GAClC,GAAID,EAAO6C,MAAM,OAAQ,MAAO,CAC9B5C,EAAMC,EAAID,EAAME,OAAS8G,CACzB,IAAIrK,EAAQU,oBAAqB2C,EAAMtB,WAAa,MACpD,IAAI6F,GAAaxB,EAAQ/C,EACzBA,GAAMnB,SAAW,KACjB,OAAO0F,GAGTxE,EAAO6C,MAAM,kBAAmB,KAEhC,OAAO7E,GAAWc,SAGpB,QAASmI,GAAYjH,EAAQC,GAE3B,GAAGD,EAAO+C,WAAW,CACnB,MAAO,MAGT/C,EAAO6C,MAAM,UAAW,KAExB,IAAI7C,EAAO+D,SAAWxG,UAAW,CAC/B0C,EAAMU,UAAY,SACb,CACLX,EAAO6C,MAAM,sFAAuF,MAEtG5C,EAAMC,EAAID,EAAME,OAASmB,CACzB,OAAOtD,GAAWe,SAAW,OAG/B,GAAI1B,IACFsG,WAAY,WACV,OACEzD,EAAGqB,EAEHG,UAAW1B,OAAQ,MACnB2B,UAAW3B,OAAQ,MAEnBK,MAAOkB,EACPN,UAAW,KACXa,YAAa,EAEb3B,OAAQmB,EACR0D,KAAMD,EAENpG,WAAY,MACZG,SAAU,MACVC,SAAU,MACV4B,UAAW,MACXzC,KAAM,EACNc,GAAI,MACJC,OAAQ,MACRhB,OAAQ,EACRiF,OAAQ,EACR3E,GAAI,MACJ+E,SAAU,MACVnB,KAAM,MACNE,aACAlE,MAAO,EACPqD,cAAe,EACfC,qBAAsB,MACtB/D,cAAe,MACfC,MAAO,MACP4F,YAAa,OAIjB2D,UAAW,SAASC,GAClB,OACEjH,EAAGiH,EAAEjH,EAELwB,SAAUyF,EAAEzF,SACZC,SAAUwF,EAAExF,SAEZtB,MAAO8G,EAAE9G,MACTY,UAAWkG,EAAElG,WAAaxE,EAAWyK,UAAUrK,EAAUsK,EAAElG,WAC3Da,YAAaqF,EAAErF,YAEf2B,UAAW0D,EAAE1D,UACbC,WAAYyD,EAAE1D,UAAYhH,EAAWyK,UAAUC,EAAE1D,UAAW0D,EAAEzD,YAAc,KAE5EvD,OAAQgH,EAAEhH,OACV6E,KAAMmC,EAAEnC,KACRrG,WAAY,MACZG,SAAUqI,EAAErI,SACZ6B,UAAWwG,EAAExG,UACb5B,SAAUoI,EAAEpI,SACZb,KAAMiJ,EAAEjJ,KACRc,GAAImI,EAAEnI,GACNC,OAAQkI,EAAElI,OACVvB,cAAeyJ,EAAEzJ,cACjBC,MAAOwJ,EAAExJ,MACTM,OAAQkJ,EAAElJ,OACViF,OAAQiE,EAAEjE,OACV3E,GAAI4I,EAAE5I,GACN+E,SAAU6D,EAAE7D,SACZnB,KAAMgF,EAAEhF,KACRE,UAAW8E,EAAE9E,UAAU+E,MAAM,GAC7BjJ,MAAOgJ,EAAEhJ,MACTyC,aAAcuG,EAAEvG,aAChBY,cAAe2F,EAAE3F,cACjBC,qBAAsB0F,EAAE1F,qBACxB0C,UAAWgD,EAAEhD,UACbZ,YAAa4D,EAAE5D,cAInBW,MAAO,SAASlE,EAAQC,GAGtBA,EAAMtB,WAAa,KAEnB,IAAIqB,GAAUC,EAAM0B,SAAS3B,OAAQ,CACnCC,EAAMhC,OAAS,CACfgC,GAAM1B,GAAK,KAEX,IAAIyB,EAAO6C,MAAM,QAAS,MAAO,CAC/BnC,EAAUT,EACV,OAAO,MAGTA,EAAMyB,SAAWzB,EAAM0B,QACvB1B,GAAM0B,UAAY3B,OAAQA,EAG1BC,GAAMqD,SAAW,KAGjBrD,GAAMuB,cAAgB,CACtBvB,GAAMwB,qBAAuB,KAE7B,KAAKxB,EAAMyD,WAAY,CACrBzD,EAAMC,EAAID,EAAMI,KAChB,IAAIJ,EAAMC,GAAKW,EAAW,CACxB,GAAIiB,GAAc9B,EAAO6C,MAAM,OAAQ,MAAM,GAAGuC,QAAQ,MAAOtF,GAAawC,MAC5ErC,GAAM6B,YAAcA,CACpB7B,GAAMuC,gBAAkB,IACxB,IAAIV,EAAc,EAAG,MAAO,QAIlC,MAAO7B,GAAMC,EAAEF,EAAQC,IAGzBe,UAAW,SAASf,GAClB,GAAIA,EAAMI,OAASQ,EAAW,OAAQZ,MAAOA,EAAMgB,UAAW5D,KAAMR,EACpE,IAAIoD,EAAMyD,WAAY,OAAQzD,MAAOA,EAAMyD,WAAYrG,KAAM4C,EAAMwD,UACnE,QAAQxD,MAAOA,EAAO5C,KAAMA,IAG9BgK,OAAQ,SAASpH,EAAOqH,EAAW/G,GACjC,GAAIN,EAAMI,OAASQ,GAAahE,EAASwK,OAAQ,MAAOxK,GAASwK,OAAOpH,EAAMgB,UAAWqG,EAAW/G,EACpG,IAAIN,EAAMyD,YAAczD,EAAMwD,UAAU4D,OAAQ,MAAOpH,GAAMwD,UAAU4D,OAAOpH,EAAMyD,WAAY4D,EAAW/G,EAC3G,OAAO9D,GAAW8K,MAGpB7G,UAAWA,EAEXsC,QAASA,EAETwE,kBAAmB,UACnBC,gBAAiB,SACjBC,cAAe,iBACfC,KAAM,WAER,OAAOtK,IACN,MAEHZ,GAAWmL,WAAW,gBAAiB,WAEvCnL,GAAWmL,WAAW,kBAAmB","file":"markdown.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../meta\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../meta\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"markdown\", function(cmCfg, modeCfg) {\n\n var htmlMode = CodeMirror.getMode(cmCfg, \"text/html\");\n var htmlModeMissing = htmlMode.name == \"null\"\n\n function getMode(name) {\n if (CodeMirror.findModeByName) {\n var found = CodeMirror.findModeByName(name);\n if (found) name = found.mime || found.mimes[0];\n }\n var mode = CodeMirror.getMode(cmCfg, name);\n return mode.name == \"null\" ? null : mode;\n }\n\n // Should characters that affect highlighting be highlighted separate?\n // Does not include characters that will be output (such as `1.` and `-` for lists)\n if (modeCfg.highlightFormatting === undefined)\n modeCfg.highlightFormatting = false;\n\n // Maximum number of nested blockquotes. Set to 0 for infinite nesting.\n // Excess `>` will emit `error` token.\n if (modeCfg.maxBlockquoteDepth === undefined)\n modeCfg.maxBlockquoteDepth = 0;\n\n // Turn on task lists? (\"- [ ] \" and \"- [x] \")\n if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;\n\n // Turn on strikethrough syntax\n if (modeCfg.strikethrough === undefined)\n modeCfg.strikethrough = false;\n\n if (modeCfg.emoji === undefined)\n modeCfg.emoji = false;\n\n if (modeCfg.fencedCodeBlockHighlighting === undefined)\n modeCfg.fencedCodeBlockHighlighting = true;\n\n if (modeCfg.fencedCodeBlockDefaultMode === undefined)\n modeCfg.fencedCodeBlockDefaultMode = 'text/plain';\n\n if (modeCfg.xml === undefined)\n modeCfg.xml = true;\n\n // Allow token types to be overridden by user-provided token types.\n if (modeCfg.tokenTypeOverrides === undefined)\n modeCfg.tokenTypeOverrides = {};\n\n var tokenTypes = {\n header: \"header\",\n code: \"comment\",\n quote: \"quote\",\n list1: \"variable-2\",\n list2: \"variable-3\",\n list3: \"keyword\",\n hr: \"hr\",\n image: \"image\",\n imageAltText: \"image-alt-text\",\n imageMarker: \"image-marker\",\n formatting: \"formatting\",\n linkInline: \"link\",\n linkEmail: \"link\",\n linkText: \"link\",\n linkHref: \"string\",\n em: \"em\",\n strong: \"strong\",\n strikethrough: \"strikethrough\",\n emoji: \"builtin\"\n };\n\n for (var tokenType in tokenTypes) {\n if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {\n tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];\n }\n }\n\n var hrRE = /^([*\\-_])(?:\\s*\\1){2,}\\s*$/\n , listRE = /^(?:[*\\-+]|^[0-9]+([.)]))\\s+/\n , taskListRE = /^\\[(x| )\\](?=\\s)/i // Must follow listRE\n , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/\n , setextHeaderRE = /^ {0,3}(?:\\={1,}|-{2,})\\s*$/\n , textRE = /^[^#!\\[\\]*_\\\\<>` \"'(~:]+/\n , fencedCodeRE = /^(~~~+|```+)[ \\t]*([\\w\\/+#-]*)[^\\n`]*$/\n , linkDefRE = /^\\s*\\[[^\\]]+?\\]:.*$/ // naive link-definition\n , punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/\n , expandedTab = \" \" // CommonMark specifies tab as 4 spaces\n\n function switchInline(stream, state, f) {\n state.f = state.inline = f;\n return f(stream, state);\n }\n\n function switchBlock(stream, state, f) {\n state.f = state.block = f;\n return f(stream, state);\n }\n\n function lineIsEmpty(line) {\n return !line || !/\\S/.test(line.string)\n }\n\n // Blocks\n\n function blankLine(state) {\n // Reset linkTitle state\n state.linkTitle = false;\n state.linkHref = false;\n state.linkText = false;\n // Reset EM state\n state.em = false;\n // Reset STRONG state\n state.strong = false;\n // Reset strikethrough state\n state.strikethrough = false;\n // Reset state.quote\n state.quote = 0;\n // Reset state.indentedCode\n state.indentedCode = false;\n if (state.f == htmlBlock) {\n var exit = htmlModeMissing\n if (!exit) {\n var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n exit = inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n (!inner.state.context && inner.state.tokenize.isInText)\n }\n if (exit) {\n state.f = inlineNormal;\n state.block = blockNormal;\n state.htmlState = null;\n }\n }\n // Reset state.trailingSpace\n state.trailingSpace = 0;\n state.trailingSpaceNewLine = false;\n // Mark this line as blank\n state.prevLine = state.thisLine\n state.thisLine = {stream: null}\n return null;\n }\n\n function blockNormal(stream, state) {\n var firstTokenOnLine = stream.column() === state.indentation;\n var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);\n var prevLineIsIndentedCode = state.indentedCode;\n var prevLineIsHr = state.prevLine.hr;\n var prevLineIsList = state.list !== false;\n var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;\n\n state.indentedCode = false;\n\n var lineIndentation = state.indentation;\n // compute once per line (on first token)\n if (state.indentationDiff === null) {\n state.indentationDiff = state.indentation;\n if (prevLineIsList) {\n state.list = null;\n // While this list item's marker's indentation is less than the deepest\n // list item's content's indentation,pop the deepest list item\n // indentation off the stack, and update block indentation state\n while (lineIndentation < state.listStack[state.listStack.length - 1]) {\n state.listStack.pop();\n if (state.listStack.length) {\n state.indentation = state.listStack[state.listStack.length - 1];\n // less than the first list's indent -> the line is no longer a list\n } else {\n state.list = false;\n }\n }\n if (state.list !== false) {\n state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]\n }\n }\n }\n\n // not comprehensive (currently only for setext detection purposes)\n var allowsInlineContinuation = (\n !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&\n (!prevLineIsList || !prevLineIsIndentedCode) &&\n !state.prevLine.fencedCodeEnd\n );\n\n var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&\n state.indentation <= maxNonCodeIndentation && stream.match(hrRE);\n\n var match = null;\n if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||\n state.prevLine.header || prevLineLineIsEmpty)) {\n stream.skipToEnd();\n state.indentedCode = true;\n return tokenTypes.code;\n } else if (stream.eatSpace()) {\n return null;\n } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {\n state.quote = 0;\n state.header = match[1].length;\n state.thisLine.header = true;\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n state.f = state.inline;\n return getType(state);\n } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {\n state.quote = firstTokenOnLine ? 1 : state.quote + 1;\n if (modeCfg.highlightFormatting) state.formatting = \"quote\";\n stream.eatSpace();\n return getType(state);\n } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {\n var listType = match[1] ? \"ol\" : \"ul\";\n\n state.indentation = lineIndentation + stream.current().length;\n state.list = true;\n state.quote = 0;\n\n // Add this list item's content's indentation to the stack\n state.listStack.push(state.indentation);\n // Reset inline styles which shouldn't propagate aross list items\n state.em = false;\n state.strong = false;\n state.code = false;\n state.strikethrough = false;\n\n if (modeCfg.taskLists && stream.match(taskListRE, false)) {\n state.taskList = true;\n }\n state.f = state.inline;\n if (modeCfg.highlightFormatting) state.formatting = [\"list\", \"list-\" + listType];\n return getType(state);\n } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {\n state.quote = 0;\n state.fencedEndRE = new RegExp(match[1] + \"+ *$\");\n // try switching mode\n state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2] || modeCfg.fencedCodeBlockDefaultMode );\n if (state.localMode) state.localState = CodeMirror.startState(state.localMode);\n state.f = state.block = local;\n if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n state.code = -1\n return getType(state);\n // SETEXT has lowest block-scope precedence after HR, so check it after\n // the others (code, blockquote, list...)\n } else if (\n // if setext set, indicates line after ---/===\n state.setext || (\n // line before ---/===\n (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&\n !state.code && !isHr && !linkDefRE.test(stream.string) &&\n (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))\n )\n ) {\n if ( !state.setext ) {\n state.header = match[0].charAt(0) == '=' ? 1 : 2;\n state.setext = state.header;\n } else {\n state.header = state.setext;\n // has no effect on type so we can reset it now\n state.setext = 0;\n stream.skipToEnd();\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n }\n state.thisLine.header = true;\n state.f = state.inline;\n return getType(state);\n } else if (isHr) {\n stream.skipToEnd();\n state.hr = true;\n state.thisLine.hr = true;\n return tokenTypes.hr;\n } else if (stream.peek() === '[') {\n return switchInline(stream, state, footnoteLink);\n }\n\n return switchInline(stream, state, state.inline);\n }\n\n function htmlBlock(stream, state) {\n var style = htmlMode.token(stream, state.htmlState);\n if (!htmlModeMissing) {\n var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n if ((inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n (!inner.state.context && inner.state.tokenize.isInText)) ||\n (state.md_inside && stream.current().indexOf(\">\") > -1)) {\n state.f = inlineNormal;\n state.block = blockNormal;\n state.htmlState = null;\n }\n }\n return style;\n }\n\n function local(stream, state) {\n var currListInd = state.listStack[state.listStack.length - 1] || 0;\n var hasExitedList = state.indentation < currListInd;\n var maxFencedEndInd = currListInd + 3;\n if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {\n if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n var returnType;\n if (!hasExitedList) returnType = getType(state)\n state.localMode = state.localState = null;\n state.block = blockNormal;\n state.f = inlineNormal;\n state.fencedEndRE = null;\n state.code = 0\n state.thisLine.fencedCodeEnd = true;\n if (hasExitedList) return switchBlock(stream, state, state.block);\n return returnType;\n } else if (state.localMode) {\n return state.localMode.token(stream, state.localState);\n } else {\n stream.skipToEnd();\n return tokenTypes.code;\n }\n }\n\n // Inline\n function getType(state) {\n var styles = [];\n\n if (state.formatting) {\n styles.push(tokenTypes.formatting);\n\n if (typeof state.formatting === \"string\") state.formatting = [state.formatting];\n\n for (var i = 0; i < state.formatting.length; i++) {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i]);\n\n if (state.formatting[i] === \"header\") {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.header);\n }\n\n // Add `formatting-quote` and `formatting-quote-#` for blockquotes\n // Add `error` instead if the maximum blockquote nesting depth is passed\n if (state.formatting[i] === \"quote\") {\n if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.quote);\n } else {\n styles.push(\"error\");\n }\n }\n }\n }\n\n if (state.taskOpen) {\n styles.push(\"meta\");\n return styles.length ? styles.join(' ') : null;\n }\n if (state.taskClosed) {\n styles.push(\"property\");\n return styles.length ? styles.join(' ') : null;\n }\n\n if (state.linkHref) {\n styles.push(tokenTypes.linkHref, \"url\");\n } else { // Only apply inline styles to non-url text\n if (state.strong) { styles.push(tokenTypes.strong); }\n if (state.em) { styles.push(tokenTypes.em); }\n if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }\n if (state.emoji) { styles.push(tokenTypes.emoji); }\n if (state.linkText) { styles.push(tokenTypes.linkText); }\n if (state.code) { styles.push(tokenTypes.code); }\n if (state.image) { styles.push(tokenTypes.image); }\n if (state.imageAltText) { styles.push(tokenTypes.imageAltText, \"link\"); }\n if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }\n }\n\n if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + \"-\" + state.header); }\n\n if (state.quote) {\n styles.push(tokenTypes.quote);\n\n // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth\n if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n styles.push(tokenTypes.quote + \"-\" + state.quote);\n } else {\n styles.push(tokenTypes.quote + \"-\" + modeCfg.maxBlockquoteDepth);\n }\n }\n\n if (state.list !== false) {\n var listMod = (state.listStack.length - 1) % 3;\n if (!listMod) {\n styles.push(tokenTypes.list1);\n } else if (listMod === 1) {\n styles.push(tokenTypes.list2);\n } else {\n styles.push(tokenTypes.list3);\n }\n }\n\n if (state.trailingSpaceNewLine) {\n styles.push(\"trailing-space-new-line\");\n } else if (state.trailingSpace) {\n styles.push(\"trailing-space-\" + (state.trailingSpace % 2 ? \"a\" : \"b\"));\n }\n\n return styles.length ? styles.join(' ') : null;\n }\n\n function handleText(stream, state) {\n if (stream.match(textRE, true)) {\n return getType(state);\n }\n return undefined;\n }\n\n function inlineNormal(stream, state) {\n var style = state.text(stream, state);\n if (typeof style !== 'undefined')\n return style;\n\n if (state.list) { // List marker (*, +, -, 1., etc)\n state.list = null;\n return getType(state);\n }\n\n if (state.taskList) {\n var taskOpen = stream.match(taskListRE, true)[1] === \" \";\n if (taskOpen) state.taskOpen = true;\n else state.taskClosed = true;\n if (modeCfg.highlightFormatting) state.formatting = \"task\";\n state.taskList = false;\n return getType(state);\n }\n\n state.taskOpen = false;\n state.taskClosed = false;\n\n if (state.header && stream.match(/^#+$/, true)) {\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n return getType(state);\n }\n\n var ch = stream.next();\n\n // Matches link titles present on next line\n if (state.linkTitle) {\n state.linkTitle = false;\n var matchCh = ch;\n if (ch === '(') {\n matchCh = ')';\n }\n matchCh = (matchCh+'').replace(/([.?*+^\\[\\]\\\\(){}|-])/g, \"\\\\$1\");\n var regex = '^\\\\s*(?:[^' + matchCh + '\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)' + matchCh;\n if (stream.match(new RegExp(regex), true)) {\n return tokenTypes.linkHref;\n }\n }\n\n // If this block is changed, it may need to be updated in GFM mode\n if (ch === '`') {\n var previousFormatting = state.formatting;\n if (modeCfg.highlightFormatting) state.formatting = \"code\";\n stream.eatWhile('`');\n var count = stream.current().length\n if (state.code == 0 && (!state.quote || count == 1)) {\n state.code = count\n return getType(state)\n } else if (count == state.code) { // Must be exact\n var t = getType(state)\n state.code = 0\n return t\n } else {\n state.formatting = previousFormatting\n return getType(state)\n }\n } else if (state.code) {\n return getType(state);\n }\n\n if (ch === '\\\\') {\n stream.next();\n if (modeCfg.highlightFormatting) {\n var type = getType(state);\n var formattingEscape = tokenTypes.formatting + \"-escape\";\n return type ? type + \" \" + formattingEscape : formattingEscape;\n }\n }\n\n if (ch === '!' && stream.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/, false)) {\n state.imageMarker = true;\n state.image = true;\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n return getType(state);\n }\n\n if (ch === '[' && state.imageMarker && stream.match(/[^\\]]*\\](\\(.*?\\)| ?\\[.*?\\])/, false)) {\n state.imageMarker = false;\n state.imageAltText = true\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n return getType(state);\n }\n\n if (ch === ']' && state.imageAltText) {\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n var type = getType(state);\n state.imageAltText = false;\n state.image = false;\n state.inline = state.f = linkHref;\n return type;\n }\n\n if (ch === '[' && !state.image) {\n if (state.linkText && stream.match(/^.*?\\]/)) return getType(state)\n state.linkText = true;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n return getType(state);\n }\n\n if (ch === ']' && state.linkText) {\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n state.linkText = false;\n state.inline = state.f = stream.match(/\\(.*?\\)| ?\\[.*?\\]/, false) ? linkHref : inlineNormal\n return type;\n }\n\n if (ch === '<' && stream.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/, false)) {\n state.f = state.inline = linkInline;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkInline;\n }\n\n if (ch === '<' && stream.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/, false)) {\n state.f = state.inline = linkInline;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkEmail;\n }\n\n if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\\?|!\\[CDATA\\[|[a-z][a-z0-9-]*(?:\\s+[a-z_:.\\-]+(?:\\s*=\\s*[^>]+)?)*\\s*(?:>|$))/i, false)) {\n var end = stream.string.indexOf(\">\", stream.pos);\n if (end != -1) {\n var atts = stream.string.substring(stream.start, end);\n if (/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(atts)) state.md_inside = true;\n }\n stream.backUp(1);\n state.htmlState = CodeMirror.startState(htmlMode);\n return switchBlock(stream, state, htmlBlock);\n }\n\n if (modeCfg.xml && ch === '<' && stream.match(/^\\/\\w*?>/)) {\n state.md_inside = false;\n return \"tag\";\n } else if (ch === \"*\" || ch === \"_\") {\n var len = 1, before = stream.pos == 1 ? \" \" : stream.string.charAt(stream.pos - 2)\n while (len < 3 && stream.eat(ch)) len++\n var after = stream.peek() || \" \"\n // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis\n var leftFlanking = !/\\s/.test(after) && (!punctuation.test(after) || /\\s/.test(before) || punctuation.test(before))\n var rightFlanking = !/\\s/.test(before) && (!punctuation.test(before) || /\\s/.test(after) || punctuation.test(after))\n var setEm = null, setStrong = null\n if (len % 2) { // Em\n if (!state.em && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n setEm = true\n else if (state.em == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n setEm = false\n }\n if (len > 1) { // Strong\n if (!state.strong && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n setStrong = true\n else if (state.strong == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n setStrong = false\n }\n if (setStrong != null || setEm != null) {\n if (modeCfg.highlightFormatting) state.formatting = setEm == null ? \"strong\" : setStrong == null ? \"em\" : \"strong em\"\n if (setEm === true) state.em = ch\n if (setStrong === true) state.strong = ch\n var t = getType(state)\n if (setEm === false) state.em = false\n if (setStrong === false) state.strong = false\n return t\n }\n } else if (ch === ' ') {\n if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces\n if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n return getType(state);\n } else { // Not surrounded by spaces, back up pointer\n stream.backUp(1);\n }\n }\n }\n\n if (modeCfg.strikethrough) {\n if (ch === '~' && stream.eatWhile(ch)) {\n if (state.strikethrough) {// Remove strikethrough\n if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n var t = getType(state);\n state.strikethrough = false;\n return t;\n } else if (stream.match(/^[^\\s]/, false)) {// Add strikethrough\n state.strikethrough = true;\n if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n return getType(state);\n }\n } else if (ch === ' ') {\n if (stream.match(/^~~/, true)) { // Probably surrounded by space\n if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n return getType(state);\n } else { // Not surrounded by spaces, back up pointer\n stream.backUp(2);\n }\n }\n }\n }\n\n if (modeCfg.emoji && ch === \":\" && stream.match(/^(?:[a-z_\\d+][a-z_\\d+-]*|\\-[a-z_\\d+][a-z_\\d+-]*):/)) {\n state.emoji = true;\n if (modeCfg.highlightFormatting) state.formatting = \"emoji\";\n var retType = getType(state);\n state.emoji = false;\n return retType;\n }\n\n if (ch === ' ') {\n if (stream.match(/^ +$/, false)) {\n state.trailingSpace++;\n } else if (state.trailingSpace) {\n state.trailingSpaceNewLine = true;\n }\n }\n\n return getType(state);\n }\n\n function linkInline(stream, state) {\n var ch = stream.next();\n\n if (ch === \">\") {\n state.f = state.inline = inlineNormal;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkInline;\n }\n\n stream.match(/^[^>]+/, true);\n\n return tokenTypes.linkInline;\n }\n\n function linkHref(stream, state) {\n // Check if space, and return NULL if so (to avoid marking the space)\n if(stream.eatSpace()){\n return null;\n }\n var ch = stream.next();\n if (ch === '(' || ch === '[') {\n state.f = state.inline = getLinkHrefInside(ch === \"(\" ? \")\" : \"]\");\n if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n state.linkHref = true;\n return getType(state);\n }\n return 'error';\n }\n\n var linkRE = {\n \")\": /^(?:[^\\\\\\(\\)]|\\\\.|\\((?:[^\\\\\\(\\)]|\\\\.)*\\))*?(?=\\))/,\n \"]\": /^(?:[^\\\\\\[\\]]|\\\\.|\\[(?:[^\\\\\\[\\]]|\\\\.)*\\])*?(?=\\])/\n }\n\n function getLinkHrefInside(endChar) {\n return function(stream, state) {\n var ch = stream.next();\n\n if (ch === endChar) {\n state.f = state.inline = inlineNormal;\n if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n var returnState = getType(state);\n state.linkHref = false;\n return returnState;\n }\n\n stream.match(linkRE[endChar])\n state.linkHref = true;\n return getType(state);\n };\n }\n\n function footnoteLink(stream, state) {\n if (stream.match(/^([^\\]\\\\]|\\\\.)*\\]:/, false)) {\n state.f = footnoteLinkInside;\n stream.next(); // Consume [\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n state.linkText = true;\n return getType(state);\n }\n return switchInline(stream, state, inlineNormal);\n }\n\n function footnoteLinkInside(stream, state) {\n if (stream.match(/^\\]:/, true)) {\n state.f = state.inline = footnoteUrl;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var returnType = getType(state);\n state.linkText = false;\n return returnType;\n }\n\n stream.match(/^([^\\]\\\\]|\\\\.)+/, true);\n\n return tokenTypes.linkText;\n }\n\n function footnoteUrl(stream, state) {\n // Check if space, and return NULL if so (to avoid marking the space)\n if(stream.eatSpace()){\n return null;\n }\n // Match URL\n stream.match(/^[^\\s]+/, true);\n // Check for link title\n if (stream.peek() === undefined) { // End of line, set flag to check next line\n state.linkTitle = true;\n } else { // More content on line, check if link title\n stream.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\\\\\|\\\\.)+\"|'(?:[^'\\\\]|\\\\\\\\|\\\\.)+'|\\((?:[^)\\\\]|\\\\\\\\|\\\\.)+\\)))?/, true);\n }\n state.f = state.inline = inlineNormal;\n return tokenTypes.linkHref + \" url\";\n }\n\n var mode = {\n startState: function() {\n return {\n f: blockNormal,\n\n prevLine: {stream: null},\n thisLine: {stream: null},\n\n block: blockNormal,\n htmlState: null,\n indentation: 0,\n\n inline: inlineNormal,\n text: handleText,\n\n formatting: false,\n linkText: false,\n linkHref: false,\n linkTitle: false,\n code: 0,\n em: false,\n strong: false,\n header: 0,\n setext: 0,\n hr: false,\n taskList: false,\n list: false,\n listStack: [],\n quote: 0,\n trailingSpace: 0,\n trailingSpaceNewLine: false,\n strikethrough: false,\n emoji: false,\n fencedEndRE: null\n };\n },\n\n copyState: function(s) {\n return {\n f: s.f,\n\n prevLine: s.prevLine,\n thisLine: s.thisLine,\n\n block: s.block,\n htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),\n indentation: s.indentation,\n\n localMode: s.localMode,\n localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,\n\n inline: s.inline,\n text: s.text,\n formatting: false,\n linkText: s.linkText,\n linkTitle: s.linkTitle,\n linkHref: s.linkHref,\n code: s.code,\n em: s.em,\n strong: s.strong,\n strikethrough: s.strikethrough,\n emoji: s.emoji,\n header: s.header,\n setext: s.setext,\n hr: s.hr,\n taskList: s.taskList,\n list: s.list,\n listStack: s.listStack.slice(0),\n quote: s.quote,\n indentedCode: s.indentedCode,\n trailingSpace: s.trailingSpace,\n trailingSpaceNewLine: s.trailingSpaceNewLine,\n md_inside: s.md_inside,\n fencedEndRE: s.fencedEndRE\n };\n },\n\n token: function(stream, state) {\n\n // Reset state.formatting\n state.formatting = false;\n\n if (stream != state.thisLine.stream) {\n state.header = 0;\n state.hr = false;\n\n if (stream.match(/^\\s*$/, true)) {\n blankLine(state);\n return null;\n }\n\n state.prevLine = state.thisLine\n state.thisLine = {stream: stream}\n\n // Reset state.taskList\n state.taskList = false;\n\n // Reset state.trailingSpace\n state.trailingSpace = 0;\n state.trailingSpaceNewLine = false;\n\n if (!state.localState) {\n state.f = state.block;\n if (state.f != htmlBlock) {\n var indentation = stream.match(/^\\s*/, true)[0].replace(/\\t/g, expandedTab).length;\n state.indentation = indentation;\n state.indentationDiff = null;\n if (indentation > 0) return null;\n }\n }\n }\n return state.f(stream, state);\n },\n\n innerMode: function(state) {\n if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};\n if (state.localState) return {state: state.localState, mode: state.localMode};\n return {state: state, mode: mode};\n },\n\n indent: function(state, textAfter, line) {\n if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)\n if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)\n return CodeMirror.Pass\n },\n\n blankLine: blankLine,\n\n getType: getType,\n\n blockCommentStart: \"\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n fold: \"markdown\"\n };\n return mode;\n}, \"xml\");\n\nCodeMirror.defineMIME(\"text/markdown\", \"markdown\");\n\nCodeMirror.defineMIME(\"text/x-markdown\", \"markdown\");\n\n});\n"]}