bookclub-advr

DSLC Advanced R Book Club
git clone https://git.eamoncaddigan.net/bookclub-advr.git
Log | Files | Refs | README | LICENSE

highlight.min.js (23614B)


      1 /*!
      2   Highlight.js v11.10.0 (git: 366a8bd012)
      3   (c) 2006-2024 Josh Goebel <hello@joshgoebel.com> and other contributors
      4   License: BSD-3-Clause
      5  */
      6 var hljs=function(){"use strict";function e(t){
      7 return t instanceof Map?t.clear=t.delete=t.set=()=>{
      8 throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
      9 throw Error("set is read-only")
     10 }),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{
     11 const i=t[n],s=typeof i;"object"!==s&&"function"!==s||Object.isFrozen(i)||e(i)
     12 })),t}class t{constructor(e){
     13 void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
     14 ignoreMatch(){this.isMatchIgnored=!0}}function n(e){
     15 return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
     16 }function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
     17 ;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope
     18 ;class o{constructor(e,t){
     19 this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
     20 this.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{
     21 if(e.startsWith("language:"))return e.replace("language:","language-")
     22 ;if(e.includes(".")){const n=e.split(".")
     23 ;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")
     24 }return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}
     25 closeNode(e){s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
     26 this.buffer+=`<span class="${e}">`}}const r=(e={})=>{const t={children:[]}
     27 ;return Object.assign(t,e),t};class a{constructor(){
     28 this.rootNode=r(),this.stack=[this.rootNode]}get top(){
     29 return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
     30 this.top.children.push(e)}openNode(e){const t=r({scope:e})
     31 ;this.add(t),this.stack.push(t)}closeNode(){
     32 if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
     33 for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
     34 walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
     35 return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
     36 t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
     37 "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
     38 a._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e}
     39 addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
     40 this.closeNode()}__addSublanguage(e,t){const n=e.root
     41 ;t&&(n.scope="language:"+t),this.add(n)}toHTML(){
     42 return new o(this,this.options).value()}finalize(){
     43 return this.closeAllNodes(),!0}}function l(e){
     44 return e?"string"==typeof e?e:e.source:null}function g(e){return h("(?=",e,")")}
     45 function u(e){return h("(?:",e,")*")}function d(e){return h("(?:",e,")?")}
     46 function h(...e){return e.map((e=>l(e))).join("")}function f(...e){const t=(e=>{
     47 const t=e[e.length-1]
     48 ;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}
     49 })(e);return"("+(t.capture?"":"?:")+e.map((e=>l(e))).join("|")+")"}
     50 function p(e){return RegExp(e.toString()+"|").exec("").length-1}
     51 const b=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
     52 ;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n
     53 ;let i=l(e),s="";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break}
     54 s+=i.substring(0,e.index),
     55 i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],
     56 "("===e[0]&&n++)}return s})).map((e=>`(${e})`)).join(t)}
     57 const E="[a-zA-Z]\\w*",x="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",_="\\b(0b[01]+)",O={
     58 begin:"\\\\[\\s\\S]",relevance:0},v={scope:"string",begin:"'",end:"'",
     59 illegal:"\\n",contains:[O]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",
     60 contains:[O]},N=(e,t,n={})=>{const s=i({scope:"comment",begin:e,end:t,
     61 contains:[]},n);s.contains.push({scope:"doctag",
     62 begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
     63 end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
     64 ;const o=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
     65 ;return s.contains.push({begin:h(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s
     66 },S=N("//","$"),M=N("/\\*","\\*/"),R=N("#","$");var j=Object.freeze({
     67 __proto__:null,APOS_STRING_MODE:v,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{
     68 scope:"number",begin:_,relevance:0},BINARY_NUMBER_RE:_,COMMENT:N,
     69 C_BLOCK_COMMENT_MODE:M,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:"number",
     70 begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{
     71 "on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
     72 t.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E,
     73 MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+x,relevance:0},
     74 NUMBER_MODE:{scope:"number",begin:w,relevance:0},NUMBER_RE:w,
     75 PHRASAL_WORDS_MODE:{
     76 begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
     77 },QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
     78 end:/\/[gimuy]*/,contains:[O,{begin:/\[/,end:/\]/,relevance:0,contains:[O]}]},
     79 RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
     80 SHEBANG:(e={})=>{const t=/^#![ ]*\//
     81 ;return e.binary&&(e.begin=h(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t,
     82 end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},
     83 TITLE_MODE:{scope:"title",begin:E,relevance:0},UNDERSCORE_IDENT_RE:x,
     84 UNDERSCORE_TITLE_MODE:{scope:"title",begin:x,relevance:0}});function A(e,t){
     85 "."===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){
     86 void 0!==e.className&&(e.scope=e.className,delete e.className)}function T(e,t){
     87 t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
     88 e.__beforeBegin=A,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
     89 void 0===e.relevance&&(e.relevance=0))}function L(e,t){
     90 Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function B(e,t){
     91 if(e.match){
     92 if(e.begin||e.end)throw Error("begin & end are not supported with match")
     93 ;e.begin=e.match,delete e.match}}function P(e,t){
     94 void 0===e.relevance&&(e.relevance=1)}const D=(e,t)=>{if(!e.beforeMatch)return
     95 ;if(e.starts)throw Error("beforeMatch cannot be used with starts")
     96 ;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]
     97 })),e.keywords=n.keywords,e.begin=h(n.beforeMatch,g(n.begin)),e.starts={
     98 relevance:0,contains:[Object.assign(n,{endsParent:!0})]
     99 },e.relevance=0,delete n.beforeMatch
    100 },H=["of","and","for","in","not","or","if","then","parent","list","value"],C="keyword"
    101 ;function $(e,t,n=C){const i=Object.create(null)
    102 ;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    103 Object.assign(i,$(e[n],t,n))})),i;function s(e,n){
    104 t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    105 ;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){
    106 return t?Number(t):(e=>H.includes(e.toLowerCase()))(e)?0:1}const z={},W=e=>{
    107 console.error(e)},X=(e,...t)=>{console.log("WARN: "+e,...t)},G=(e,t)=>{
    108 z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0)
    109 },K=Error();function F(e,t,{key:n}){let i=0;const s=e[n],o={},r={}
    110 ;for(let e=1;e<=t.length;e++)r[e+i]=s[e],o[e+i]=!0,i+=p(t[e-1])
    111 ;e[n]=r,e[n]._emit=o,e[n]._multi=!0}function Z(e){(e=>{
    112 e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
    113 delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
    114 _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
    115 }),(e=>{if(Array.isArray(e.begin)){
    116 if(e.skip||e.excludeBegin||e.returnBegin)throw W("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
    117 K
    118 ;if("object"!=typeof e.beginScope||null===e.beginScope)throw W("beginScope must be object"),
    119 K;F(e,e.begin,{key:"beginScope"}),e.begin=m(e.begin,{joinWith:""})}})(e),(e=>{
    120 if(Array.isArray(e.end)){
    121 if(e.skip||e.excludeEnd||e.returnEnd)throw W("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
    122 K
    123 ;if("object"!=typeof e.endScope||null===e.endScope)throw W("endScope must be object"),
    124 K;F(e,e.end,{key:"endScope"}),e.end=m(e.end,{joinWith:""})}})(e)}function V(e){
    125 function t(t,n){
    126 return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))
    127 }class n{constructor(){
    128 this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    129 addRule(e,t){
    130 t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    131 this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
    132 ;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(m(e,{joinWith:"|"
    133 }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
    134 ;const t=this.matcherRe.exec(e);if(!t)return null
    135 ;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    136 ;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    137 this.rules=[],this.multiRegexes=[],
    138 this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    139 if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n
    140 ;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    141 t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    142 return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    143 this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    144 const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    145 ;let n=t.exec(e)
    146 ;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    147 const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    148 return n&&(this.regexIndex+=n.position+1,
    149 this.regexIndex===this.count&&this.considerAll()),n}}
    150 if(e.compilerExtensions||(e.compilerExtensions=[]),
    151 e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    152 ;return e.classNameAliases=i(e.classNameAliases||{}),function n(o,r){const a=o
    153 ;if(o.isCompiled)return a
    154 ;[I,B,Z,D].forEach((e=>e(o,r))),e.compilerExtensions.forEach((e=>e(o,r))),
    155 o.__beforeBegin=null,[T,L,P].forEach((e=>e(o,r))),o.isCompiled=!0;let c=null
    156 ;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),
    157 c=o.keywords.$pattern,
    158 delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=$(o.keywords,e.case_insensitive)),
    159 a.keywordPatternRe=t(c,!0),
    160 r&&(o.begin||(o.begin=/\B|\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\B|\b/),
    161 o.end&&(a.endRe=t(a.end)),
    162 a.terminatorEnd=l(a.end)||"",o.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(o.end?"|":"")+r.terminatorEnd)),
    163 o.illegal&&(a.illegalRe=t(o.illegal)),
    164 o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>i(e,{
    165 variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?i(e,{
    166 starts:e.starts?i(e.starts):null
    167 }):Object.isFrozen(e)?i(e):e))("self"===e?o:e)))),o.contains.forEach((e=>{n(e,a)
    168 })),o.starts&&n(o.starts,r),a.matcher=(e=>{const t=new s
    169 ;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    170 }))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    171 }),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){
    172 return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{
    173 constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}
    174 const Y=n,Q=i,ee=Symbol("nomatch"),te=n=>{
    175 const i=Object.create(null),s=Object.create(null),o=[];let r=!0
    176 ;const a="Could not find the language '{}', did you forget to load/include a language module?",l={
    177 disableAutodetect:!0,name:"Plain text",contains:[]};let p={
    178 ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
    179 languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    180 cssSelector:"pre code",languages:null,__emitter:c};function b(e){
    181 return p.noHighlightRe.test(e)}function m(e,t,n){let i="",s=""
    182 ;"object"==typeof t?(i=e,
    183 n=t.ignoreIllegals,s=t.language):(G("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    184 G("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    185 s=e,i=t),void 0===n&&(n=!0);const o={code:i,language:s};N("before:highlight",o)
    186 ;const r=o.result?o.result:E(o.language,o.code,n)
    187 ;return r.code=o.code,N("after:highlight",r),r}function E(e,n,s,o){
    188 const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(R)
    189 ;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(R),n=""
    190 ;for(;t;){n+=R.substring(e,t.index)
    191 ;const s=_.case_insensitive?t[0].toLowerCase():t[0],o=(i=s,N.keywords[i]);if(o){
    192 const[e,i]=o
    193 ;if(M.addText(n),n="",c[s]=(c[s]||0)+1,c[s]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{
    194 const n=_.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0]
    195 ;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(R)}var i
    196 ;n+=R.substring(e),M.addText(n)}function g(){null!=N.subLanguage?(()=>{
    197 if(""===R)return;let e=null;if("string"==typeof N.subLanguage){
    198 if(!i[N.subLanguage])return void M.addText(R)
    199 ;e=E(N.subLanguage,R,!0,S[N.subLanguage]),S[N.subLanguage]=e._top
    200 }else e=x(R,N.subLanguage.length?N.subLanguage:null)
    201 ;N.relevance>0&&(j+=e.relevance),M.__addSublanguage(e._emitter,e.language)
    202 })():l(),R=""}function u(e,t){
    203 ""!==e&&(M.startScope(t),M.addText(e),M.endScope())}function d(e,t){let n=1
    204 ;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue}
    205 const i=_.classNameAliases[e[n]]||e[n],s=t[n];i?u(s,i):(R=s,l(),R=""),n++}}
    206 function h(e,t){
    207 return e.scope&&"string"==typeof e.scope&&M.openNode(_.classNameAliases[e.scope]||e.scope),
    208 e.beginScope&&(e.beginScope._wrap?(u(R,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
    209 R=""):e.beginScope._multi&&(d(e.beginScope,t),R="")),N=Object.create(e,{parent:{
    210 value:N}}),N}function f(e,n,i){let s=((e,t)=>{const n=e&&e.exec(t)
    211 ;return n&&0===n.index})(e.endRe,i);if(s){if(e["on:end"]){const i=new t(e)
    212 ;e["on:end"](n,i),i.isMatchIgnored&&(s=!1)}if(s){
    213 for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    214 if(e.endsWithParent)return f(e.parent,n,i)}function b(e){
    215 return 0===N.matcher.regexIndex?(R+=e[0],1):(T=!0,0)}function m(e){
    216 const t=e[0],i=n.substring(e.index),s=f(N,e,i);if(!s)return ee;const o=N
    217 ;N.endScope&&N.endScope._wrap?(g(),
    218 u(t,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(),
    219 d(N.endScope,e)):o.skip?R+=t:(o.returnEnd||o.excludeEnd||(R+=t),
    220 g(),o.excludeEnd&&(R=t));do{
    221 N.scope&&M.closeNode(),N.skip||N.subLanguage||(j+=N.relevance),N=N.parent
    222 }while(N!==s.parent);return s.starts&&h(s.starts,e),o.returnEnd?0:t.length}
    223 let w={};function y(i,o){const a=o&&o[0];if(R+=i,null==a)return g(),0
    224 ;if("begin"===w.type&&"end"===o.type&&w.index===o.index&&""===a){
    225 if(R+=n.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`)
    226 ;throw t.languageName=e,t.badRule=w.rule,t}return 1}
    227 if(w=o,"begin"===o.type)return(e=>{
    228 const n=e[0],i=e.rule,s=new t(i),o=[i.__beforeBegin,i["on:begin"]]
    229 ;for(const t of o)if(t&&(t(e,s),s.isMatchIgnored))return b(n)
    230 ;return i.skip?R+=n:(i.excludeBegin&&(R+=n),
    231 g(),i.returnBegin||i.excludeBegin||(R=n)),h(i,e),i.returnBegin?0:n.length})(o)
    232 ;if("illegal"===o.type&&!s){
    233 const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"<unnamed>")+'"')
    234 ;throw e.mode=N,e}if("end"===o.type){const e=m(o);if(e!==ee)return e}
    235 if("illegal"===o.type&&""===a)return 1
    236 ;if(I>1e5&&I>3*o.index)throw Error("potential infinite loop, way more iterations than matches")
    237 ;return R+=a,a.length}const _=O(e)
    238 ;if(!_)throw W(a.replace("{}",e)),Error('Unknown language: "'+e+'"')
    239 ;const v=V(_);let k="",N=o||v;const S={},M=new p.__emitter(p);(()=>{const e=[]
    240 ;for(let t=N;t!==_;t=t.parent)t.scope&&e.unshift(t.scope)
    241 ;e.forEach((e=>M.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{
    242 if(_.__emitTokens)_.__emitTokens(n,M);else{for(N.matcher.considerAll();;){
    243 I++,T?T=!1:N.matcher.considerAll(),N.matcher.lastIndex=A
    244 ;const e=N.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e)
    245 ;A=e.index+t}y(n.substring(A))}return M.finalize(),k=M.toHTML(),{language:e,
    246 value:k,relevance:j,illegal:!1,_emitter:M,_top:N}}catch(t){
    247 if(t.message&&t.message.includes("Illegal"))return{language:e,value:Y(n),
    248 illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A,
    249 context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:k},_emitter:M};if(r)return{
    250 language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:N}
    251 ;throw t}}function x(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{
    252 const t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)}
    253 ;return t._emitter.addText(e),t})(e),s=t.filter(O).filter(k).map((t=>E(t,e,!1)))
    254 ;s.unshift(n);const o=s.sort(((e,t)=>{
    255 if(e.relevance!==t.relevance)return t.relevance-e.relevance
    256 ;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1
    257 ;if(O(t.language).supersetOf===e.language)return-1}return 0})),[r,a]=o,c=r
    258 ;return c.secondBest=a,c}function w(e){let t=null;const n=(e=>{
    259 let t=e.className+" ";t+=e.parentNode?e.parentNode.className:""
    260 ;const n=p.languageDetectRe.exec(t);if(n){const t=O(n[1])
    261 ;return t||(X(a.replace("{}",n[1])),
    262 X("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}
    263 return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return
    264 ;if(N("before:highlightElement",{el:e,language:n
    265 }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
    266 ;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
    267 console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
    268 console.warn("The element with unescaped HTML:"),
    269 console.warn(e)),p.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML)
    270 ;t=e;const i=t.textContent,o=n?m(i,{language:n,ignoreIllegals:!0}):x(i)
    271 ;e.innerHTML=o.value,e.dataset.highlighted="yes",((e,t,n)=>{const i=t&&s[t]||n
    272 ;e.classList.add("hljs"),e.classList.add("language-"+i)
    273 })(e,n,o.language),e.result={language:o.language,re:o.relevance,
    274 relevance:o.relevance},o.secondBest&&(e.secondBest={
    275 language:o.secondBest.language,relevance:o.secondBest.relevance
    276 }),N("after:highlightElement",{el:e,result:o,text:i})}let y=!1;function _(){
    277 "loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(w):y=!0
    278 }function O(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]}
    279 function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    280 s[e.toLowerCase()]=t}))}function k(e){const t=O(e)
    281 ;return t&&!t.disableAutodetect}function N(e,t){const n=e;o.forEach((e=>{
    282 e[n]&&e[n](t)}))}
    283 "undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    284 y&&_()}),!1),Object.assign(n,{highlight:m,highlightAuto:x,highlightAll:_,
    285 highlightElement:w,
    286 highlightBlock:e=>(G("10.7.0","highlightBlock will be removed entirely in v12.0"),
    287 G("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{p=Q(p,e)},
    288 initHighlighting:()=>{
    289 _(),G("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.")},
    290 initHighlightingOnLoad:()=>{
    291 _(),G("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.")
    292 },registerLanguage:(e,t)=>{let s=null;try{s=t(n)}catch(t){
    293 if(W("Language definition for '{}' could not be registered.".replace("{}",e)),
    294 !r)throw t;W(t),s=l}
    295 s.name||(s.name=e),i[e]=s,s.rawDefinition=t.bind(null,n),s.aliases&&v(s.aliases,{
    296 languageName:e})},unregisterLanguage:e=>{delete i[e]
    297 ;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    298 listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v,
    299 autoDetection:k,inherit:Q,addPlugin:e=>{(e=>{
    300 e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    301 e["before:highlightBlock"](Object.assign({block:t.el},t))
    302 }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    303 e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),o.push(e)},
    304 removePlugin:e=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),n.debugMode=()=>{
    305 r=!1},n.safeMode=()=>{r=!0},n.versionString="11.10.0",n.regex={concat:h,
    306 lookahead:g,either:f,optional:d,anyNumberOfTimes:u}
    307 ;for(const t in j)"object"==typeof j[t]&&e(j[t]);return Object.assign(n,j),n
    308 },ne=te({});return ne.newInstance=()=>te({}),ne}()
    309 ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `r` grammar compiled for Highlight.js 11.10.0 */
    310 (()=>{var e=(()=>{"use strict";return e=>{
    311 const a=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,i=a.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),s=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,t=a.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/)
    312 ;return{name:"R",keywords:{$pattern:n,
    313 keyword:"function if in break next repeat else for while",
    314 literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    315 built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    316 },contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,
    317 starts:{end:a.lookahead(a.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),
    318 endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{
    319 scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0
    320 }]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]
    321 }),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],
    322 variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    323 }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    324 }),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    325 }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    326 }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    327 }),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    328 relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{
    329 1:"operator",2:"number"},match:[s,i]},{scope:{1:"operator",2:"number"},
    330 match:[/%[^%]*%/,i]},{scope:{1:"punctuation",2:"number"},match:[t,i]},{scope:{
    331 2:"number"},match:[/[^a-zA-Z0-9._]|^/,i]}]},{scope:{3:"operator"},
    332 match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:s},{
    333 match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:t},{begin:"`",end:"`",
    334 contains:[{begin:/\\./}]}]}}})();hljs.registerLanguage("r",e)})();